基于下面的 Dataframe 示例,我想计算某个索引的两个日期时间之间的差异及其累积值。预期结果如diff_days
和cum_diff days
列所示
| 指标|日期_a|日期_B|不同天数|累计差异天数|
| - ------|- ------|- ------|- ------|- ------|
| 1个|2023年1月1日|钠碲|钠碲|- -|
| 1个|钠碲|钠碲|钠碲|- -|
| 1个|钠碲|2023年3月1日|第二章|第二章|
| 第二章|2023年4月1日|钠碲|钠碲|- -|
| 第二章|钠碲|钠碲|钠碲|- -|
| 第二章|钠碲|2023年6月1日|第二章|四个|
| 三个|2023年7月1日|钠碲|钠碲|- -|
| 三个|钠碲|2023年8月1日|1个|五个|
| 三个|2023年9月1日|钠碲|钠碲|- -|
| 三个|钠碲|钠碲|钠碲|- -|
| 三个|钠碲|2023年11月1日|第二章|七|
我已经检查了另一个帖子,它计算两个日期之间的差异,不幸的是,其中一个是当日期在同一行。对于我的情况,我想了解如何计算日期,如果它在不同的行在不同的列,因为只是减去它与df['diff_days']
= df['date_a']
-df['date_b']
将产生NaT
的结果。如果有人能在这个问题上给我点化,我将不胜感激。
3条答案
按热度按时间qybjjes11#
试试这个
参考文献:
pandas.to_datetime
pandas.Series.ffill
pandas.Series.cumsum
tjvv9vkg2#
您可以使用
to_datetime
、where
+bfill
来形成石斑鱼,然后使用groupby.agg
和join
:输出:
of1yzvn43#
建议的脚本(用于测试)
结果
请注意,
date_a
和date_b
保留其原始类型以供进一步计算