首页 > 解决方案 > 使用日期比较条件计算非 nan 值的 pandas 数据框中的值

问题描述

我有以下数据框:

Date_1                  Date_2                  Date_3
2019-12-18 13:43:47                             2019-12-18 13:43:47
2019-12-18 13:43:48     2019-12-18 13:43:47     
2020-12-18 17:51:17
2020-12-18 17:51:17     2020-12-18 17:51:17     2020-12-18 17:51:17

如果它们满足日期大于的条件,我正在尝试计算每列中存在的值的数量today

我的代码:

today=pd.Timestamp.today() - pd.Timedelta(days=1)

total_date_1_events = len([df['Date_1']>today])+1
total_date_2_events = len([df['Date_2']>today])+1
total_date_3_events = len([df['Date_3']>today])+1

如果我打印我的 3 个变量中的每一个,它们都输出相同的结果,即 4,我知道这是因为空行也被计​​算在内。

我想得到以下结果:

total_date_1_events = 2 # because there are only 2 dates that are bigger than today
total_date_2_events = 1 # because there are only 1 date that is bigger than today
total_date_3_events = 1 # because there are only 1 date that is bigger than today

谢谢你的建议。

标签: pythonpandasdataframe

解决方案


只需这样做:

sum(df.Date_1>pd.Timestamp.today())
sum(df.Date_1>pd.Timestamp.today())
sum(df.Date_1>pd.Timestamp.today())

推荐阅读