我有一个像这样的数据集:
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
?
答案 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