Python 在行中的匹配单元格上聚合数据并计算日期差异
我有一个数据帧: d={'User':['A','A','B','B','C','C','C','Date':['2017-10-21','2017-10-24','2017-10-29','2017-09-30','2017-10-23','2017-10-31','2017-11-02','2017-11-03','2017-11-03'] df=pd.Dataframedata=d 这看起来像: 用户日期 A 2017年10月21日 A 2017年10月24日 A 2017年10月29日 B 2017-09-30 B 2017-10-23 C 2017-10-31 C 2017-11-02 C 2017-11-03 C 2017-11-03 我想要的是添加另一列来查找每个用户日期之间的差异:从最早的日期开始,因此差异为0到下一个日期,下一个日期到之后的日期,依此类推 然后,数据帧看起来像: 用户日期差异 A 2017-10-21 0 A 2017-10-24 3 A 2017-10-29 5 B 2017-09-30 0 B 2017-10-23 23 C 2017-10-31 0 C 2017-11-02 2 C 2017-11-03 1 C 2017-11-03 0 注意:用户和日期已在原始数据框中排序。我认为需要,对于转换时间增量,添加:Python 在行中的匹配单元格上聚合数据并计算日期差异,python,pandas,Python,Pandas,我有一个数据帧: d={'User':['A','A','B','B','C','C','C','Date':['2017-10-21','2017-10-24','2017-10-29','2017-09-30','2017-10-23','2017-10-31','2017-11-02','2017-11-03','2017-11-03'] df=pd.Dataframedata=d 这看起来像: 用户日期 A 2017年10月21日 A 2017年10月24日 A 2017年10月29日
我收到一个错误:TypeError:diff收到一个意外的关键字参数“axis”@Panaceanob-您的pandas版本是什么?我的pandas版本是0.22.0列Date中的值datetimes吗?尝试在之前将df['Date']=pd.添加到_datetimedf['Date']。
#if necessary sorting
#df = df.sort_values(['User','Date'])
df['Difference'] = df.groupby('User')['Date'].diff().dt.days.fillna(0).astype(int)
print (df)
User Date Difference
0 A 2017-10-21 0
1 A 2017-10-24 3
2 A 2017-10-29 5
3 B 2017-09-30 0
4 B 2017-10-23 23
5 C 2017-10-31 0
6 C 2017-11-02 2
7 C 2017-11-03 1
8 C 2017-11-03 0