Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在行中的匹配单元格上聚合数据并计算日期差异_Python_Pandas - Fatal编程技术网

Python 在行中的匹配单元格上聚合数据并计算日期差异

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日

我有一个数据帧:

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

注意:用户和日期已在原始数据框中排序。

我认为需要,对于转换时间增量,添加:


我收到一个错误: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