首页 > 解决方案 > 在行,多个键上滚动 datediff

问题描述

我有一个看起来像这样的数据框:

部分 日期
1 2021 年 9 月 1 日
1 2021 年 9 月 8 日
1 2021 年 9 月 15 日
2 2020 年 9 月 1 日
2 2020 年 9 月 12 日
2 2020 年 9 月 14 日

数据框已按部分排序,然后按日期排序。

我需要计算上一行中每个日期之间的天数。

每次part遇到新行时,都必须重新开始日期差异计算。

所以所需的输出将是:

部分 日期 差异
1 2021 年 9 月 1 日
1 2021 年 9 月 8 日 7
1 2021 年 9 月 15 日 7
2 2020 年 9 月 1 日
2 2020 年 9 月 12 日 11
2 2020 年 9 月 14 日 2

您将如何处理这些数据以实现所需的输出?

对此的任何帮助将不胜感激!

谢谢

标签: pythonpandasdataframedatediff

解决方案


使用groupby+ diff

df.groupby('Part').Date.diff()

0       NaT
1    7 days
2    7 days
3       NaT
4   11 days
5    2 days
Name: Date, dtype: timedelta64[ns]

如果你没有Date作为时间戳,你可以使用df.Date = pd.to_datetime(df.Date)转换。


推荐阅读