python - 使用日期比较条件计算非 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
谢谢你的建议。
解决方案
只需这样做:
sum(df.Date_1>pd.Timestamp.today())
sum(df.Date_1>pd.Timestamp.today())
sum(df.Date_1>pd.Timestamp.today())
推荐阅读
- asp.net-core-webapi - 在 EFCore 和 .net Core2.0 中与 DbContext 的多重连接
- python - 将N维numpy数组展平,形成K维数组(K≠1,K
假设我有一个三维数组,我将其称为
A
,其中第一维等于 N。如何找到B
,相当于:np.concatenate((A[0],A[1],A[2],...,A[N-1]),axis=1)
例如,假设我有:
A = np.array([[[1,2,3,4],
- pointers - 更改通过引用传递的结构的值
- mysql - 创建 MySQL 存储过程时出错
- editor - Alchemy CMS - 管理 UI - 编辑器 - 显示在所有页面区域
- excel - 添加评论时的条件格式
- php - 通过他们在 laravel 中的帖子获取类别顺序
- c++ - 除了内存分配之外,创建带有“new”和没有“new”的指针之间的区别?
- sql - 系统版本化的时态表中的 AS OF 子句如何工作?
- php - 防止普通用户进入管理页面