簡體   English   中英

使用.str.contains過濾一個FRED系列的df

[英]Using .str.contains to filter a df of FRED series

我正在嘗試從 FRED api 下載每個 state 的數據系列。我已將包含“房屋庫存:活動列表狀態”的所有數據系列加載到 df 中,但是仍然有超過 1000 行。 有沒有辦法可以搜索每個系列的標題,看看它是否包含 state 的名稱?

我努力了

df=df.loc[df['title'].str.contains(["Alaska","Alabama",...,"Wyoming"])]

系列 ID = ACTLISCOU

假設您有一個包含所有狀態的列表,您可以定義一個自定義 function 來過濾您的title列並使用它調用pd.Series.apply

state_list = ["Alaska","Alabama",...,"Wyoming"]
def my_filter(value):
    # return True if any state is in the value
    return any(state in value for state in state_list)

# Call apply to filter DF based on True|False by your filter
df_filtered = df[df['title'].apply(my_filter)]

以下代碼返回 ACTLISCOUXX 數據集中包含的國家/地區,在本例中為加利福尼亞州:

df = pd.read_csv('ACTLISCOUCA.csv',sep=';',header=None)
us_country_list=["Arizona","California","Oregon"]
country=[i for i in us_country_list if i in df.dropna().iloc[0][1]][0]
print(country)

怎么運行的

  1. CSV 文件導入為 Pandas dataframe
  2. 通過將美國國家/地區列表與 dataframe 的第一行的第二列與兩列進行匹配,列表理解用於構建涉及國家/地區的數組。 如果只提到一個國家,這個數組應該只包含一個元素。 只有數組的第一個元素保存在country變量中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM