【发布时间】:2019-05-17 19:05:13
【问题描述】:
我有一个如下的数据框:
df_raw_dates = pd.DataFrame({"id": [102, 102, 102, 103, 103, 103, 104], "val": [9,2,4,7,6,3,2], "dates": [pd.Timestamp(2002, 1, 1), pd.Timestamp(2002, 3, 3), pd.Timestamp(2003, 4, 4), pd.Timestamp(2003, 8, 9), pd.Timestamp(2005, 2, 3), pd.Timestamp(2005, 2, 8), pd.Timestamp(2005, 2, 3)]})
id val dates
0 102 9 2002-01-01
1 102 2 2002-03-03
2 102 4 2003-04-04
3 103 7 2003-08-09
4 103 6 2005-02-03
5 103 3 2005-02-08
6 104 2 2005-02-03
我想要实现的不是让dates 列有一个diff_dates 列,它表示每个id 的连续日期之间的差异,其中diff_dates 列中每个id 的第一个条目将是0。话虽如此,生成的数据框应该是:
df_processed_dates = pd.DataFrame({"id": [102, 102, 102, 103, 103, 103, 104], "val": [9,2,4,7,6,3,2], "diff_dates": [0, 61, 397, 0, 544, 5, 0]})
id val diff_dates
0 102 9 0
1 102 2 61
2 102 4 397
3 103 7 0
4 103 6 544
5 103 3 5
6 104 2 0
期待您的回答!
【问题讨论】:
标签: python pandas datetime dataframe group-by