熊猫:计算日期之间的差异

时间:2017-01-12 12:31:11

标签: python datetime pandas

我有数据框

ID   date
111   11-11-2016
111   14-11-2016
111   17-11-2016
222   24-11-2016
222   27-11-2016

我需要计算数据与每个ID之间的差异。 我用

df['duration'] = df.groupby(['ID','date']).date.apply(lambda x: x - x.iloc[0])
idx = df.groupby(['ID'])['duration'].transform(max) == df['count date']

但它返回错误的结果。 我怎么能得到满意的? 我需要得到

ID   count date
111    6
222    3

2 个答案:

答案 0 :(得分:4)

CurrentPage

也可以使用numpy.ptp

>>> df.groupby('ID')['date'].apply(lambda x: x.max() - x.min())
ID
111   6 days
222   3 days

答案 1 :(得分:1)

使用agg内置的minmax See this post

d1 = df.groupby('ID').date.agg(['min', 'max']).diff(axis=1)['max']

ID
111   6 days
222   3 days
dtype: timedelta64[ns]