根据今天的日期和其他大熊猫条件过滤数据框

时间:2020-01-13 07:32:52

标签: python pandas datetime pandas-groupby

我有一个如下所示的数据框

Date                        Status                    Price
2019-10-07 10:24:51         Yes                       20
2019-10-07 10:27:56         No                        50
2020-01-13 12:27:54         No                        40
2020-01-13 10:27:50         Yes                       80
2020-01-13 12:28:52         Yes                       45

根据上述数据,我想根据今天的日期(日期和状态==是)进行过滤。

注意:我必须根据今天的日期时间每天运行一次。

预期输出:

Date                        Status                    Price
2020-01-13 10:27:50         Yes                       80
2020-01-13 12:28:52         Yes                       45

2 个答案:

答案 0 :(得分:2)

boolean indexingSeries.dt.date与今天date创建的比较日期一起使用,并通过比较Yes的值来屏蔽链:

df['Date'] = pd.to_datetime(df['Date'])

df = df[df['Date'].dt.date.eq(pd.to_datetime('now').date()) & df['Status'].eq('Yes')]

#in last versions of pandas is possible compare dates with today datime
df = df[df['Date'].dt.date.eq(pd.to_datetime('now')) & df['Status'].eq('Yes')]
print (df)
                 Date Status  Price
3 2020-01-13 10:27:50    Yes     80
4 2020-01-13 12:28:52    Yes     45

详细信息

print (pd.to_datetime('now'))
2020-01-13 07:42:02.592142

print (pd.to_datetime('now').date())
2020-01-13

答案 1 :(得分:1)

您可以使用:

#df['Date']=pd.to_datetime(df['Date']) if needed convert to datetime first
df[df['Date'].dt.date.eq(pd.to_datetime('today')) & df['Status'].eq('Yes')]

                 Date Status  Price
3 2020-01-13 10:27:50    Yes     80
4 2020-01-13 12:28:52    Yes     45