的数据是在下面的链接: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