的數據是在下面的鏈接:http://www.fdic.gov/bank/individual/failed/banklist.html過濾數據幀由一個日期列
我只想關閉其中在2017年我怎麼能做到這一點的大熊貓銀行?
failed_banks= pd.read_html('http://www.fdic.gov/bank/individual/failed/banklist.html')
failed_banks[0]
在提取所需結果的這些代碼行後應該怎麼做?
的數據是在下面的鏈接:http://www.fdic.gov/bank/individual/failed/banklist.html過濾數據幀由一個日期列
我只想關閉其中在2017年我怎麼能做到這一點的大熊貓銀行?
failed_banks= pd.read_html('http://www.fdic.gov/bank/individual/failed/banklist.html')
failed_banks[0]
在提取所需結果的這些代碼行後應該怎麼做?
理想情況下,你會用
# assuming pandas successfully parsed this column as datetime object
# and pandas version >= 0.16
failed_banks= pd.read_html('http://www.fdic.gov/bank/individual/failed/banklist.html')[0]
failed_banks = failed_banks[failed_banks['Closing Date'].dt.year == 2017]
但大熊貓不能正確解析Closing Date
爲Date對象,所以我們需要分析它自己:
failed_banks = pd.read_html('http://www.fdic.gov/bank/individual/failed/banklist.html')[0]
def parse_date_strings(date_str):
return int(date_str.split(', ')[-1]) == 2017
failed_banks = failed_banks[failed_banks['Closing Date'].apply(parse_date_strings)]
像這樣的東西應該工作
提取截止年份。
# using pd.to_datetime
closing_year = pd.to_datetime(failed_banks[0]['Updated Date']).apply(lambda x: x.year)
# or by splitting the line
closing_year = failed_banks[0]['Updated Date'].apply(lambda x: x.split(', ')[1])
並選擇。
failed_banks[0][closing_year=='2017']
DeepSpace的解決方案爲我工作。你的解決方案非常相似。感謝你的幫助。謝謝 :) –
感謝您的即時回覆!但我不認爲它在這裏將它解析爲日期時間對象。我應該使用正則表達式嗎? –
它輸出以下錯誤---'AttributeError:只能使用.dt訪問器與datetimelike值' –
@SmithThapa請參閱我的答案中的內嵌評論。顯然,Pandas沒有解析「Closing Date」列作爲日期,您需要將它轉換爲日期,然後使用我的答案,或者自己分析日期字符串。 – DeepSpace