获取具有相同ID的列的差异

时间:2019-07-19 10:02:08

标签: python pandas

我有一个像这样的数据集:

    id  date        diff
0   1   2019-07-01  NaN
1   2   2019-07-02  4.0
2   2   2019-07-06  13.0
3   2   2019-07-19  NaN

我想创建一个额外的列,使具有相同id的相邻条目有所不同(数据按id和日期排序)。意思是我想得到这样的结果:

for

是否有一些熊猫函数可以让我做到这一点,而不是使用会遍历整个数据集的console 1

1 个答案:

答案 0 :(得分:3)

使用DataFrameGroupBy.shift,减去date,然后用Series.dt.days将时间增量转换为天数:

df['diff'] = df.groupby('id')['date'].shift(-1).sub(df['date']).dt.days
print (df)
   id       date  diff
0   1 2019-07-01   NaN
1   2 2019-07-02   4.0
2   2 2019-07-06  13.0
3   2 2019-07-19   NaN