我是python的新手并试图用python创建一个小程序。 我的要求: 我有一个这样的列表: 假期= ['2018年1月1日','2018年1月26日','2018年3月2日','2018年3月30日']
现在我想在数据框中搜索与我的列表匹配的日期,例如“2018年1月26日”,并希望将搜索结果保存在单独的数据框中。
我没有得到正确的方法来做到这一点。请建议
答案 0 :(得分:1)
您可以使用DataFrame.query
方法
holiday = ['1 January 2018','26 January 2018','2 March 2018','30 March 2018']
df.query('date==@holiday')
答案 1 :(得分:1)
<强> 1。字符串匹配
如果您的日期格式匹配,您可以直接进行字符串匹配(虽然它是一种粗俗的方式)
df2 = df[df['date'].isin(holiday)]
<强> 2。解析日期时间(正确方式)
首先解析日期,然后进行比赛!
一个。解析df日期
df['date'] = pd.to_datetime(df['date'], format='%d %B %Y')
湾解析列表中的日期
import datetime as dt
holiday = ['1 January 2018','26 January 2018','2 March 2018','30 March 2018']
holiday_parsed = [dt.strptime(i, format='%d %B %Y') for i in holiday]
然后进行过滤 -
df2 = df[df['date'].isin(holiday_parsed)]
.isin()
是一种熊猫便利方法,可让您使用列表搜索您的pandas系列。
希望有所帮助!