关于python:如何通过匹配内容列表搜索Pandas中的特定单元格

how to Search specific cell in Pandas through a list of matching content

本问题已经有最佳答案,请猛点这里访问。

enter image description here

我对python不太熟悉,尝试用python制作一个小程序。我的要求:我有一个这样的列表:假日=['2018年1月1日'、'2018年1月26日'、'2018年3月2日'、'2018年3月30日']

我有一个熊猫数据框,打印如下:氧化镁

现在,我想在数据框中搜索与我的列表(如"2018年1月26日")匹配的日期,并希望将搜索结果保存在单独的数据框中。

我没有找到合适的方法来做这件事。请建议


1。字符串匹配

如果日期格式匹配,可以直接进行字符串匹配(尽管这是一种粗糙的方法)

1
df2 = df[df['date'].isin(holiday)]

2。分析日期时间(正确的方法)

先分析日期,然后进行匹配!

a.分析df日期

1
df['date'] = pd.to_datetime(df['date'], format='%d %B %Y')

B.分析列表中的日期

1
2
3
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]

然后进行过滤-

1
df2 = df[df['date'].isin(holiday_parsed)]

.isin()是一种方便大熊猫搜索的方法,它可以让你用列表搜索大熊猫系列。

希望有帮助!


可以使用DataFrame.query方法

1
2
holiday = ['1 January 2018','26 January 2018','2 March 2018','30 March 2018']
df.query('date==@holiday')