Python 如何计算大熊猫开始时间和结束时间之间的时差?

Python 如何计算大熊猫开始时间和结束时间之间的时差?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我想获取id的结束时间和下一个开始时间之间的时间间隔 import pandas as pd df = pd.DataFrame({'id':[1,1,2,2,2],'startTime': ['2017-03-09 10:05:23', '2017-03-09 10:09:53', '2017-03-09 10:11:03' , '2017-03-09 10:41:04' , '2017-03-09 17:02:56' ], 'endTime':['2017-03-09 10:05:33'

我想获取
id
结束时间
和下一个
开始时间
之间的时间间隔

import pandas as pd 
df = pd.DataFrame({'id':[1,1,2,2,2],'startTime': ['2017-03-09 10:05:23', '2017-03-09 10:09:53', '2017-03-09 10:11:03' , '2017-03-09 10:41:04' , '2017-03-09 17:02:56' ],
 'endTime':['2017-03-09 10:05:33' , '2017-03-09 10:09:58' , '2017-03-09 10:29:43' , '2017-03-09 12:41:24' , '2017-03-09 17:03:21' ]})
print(df)
输入:

   id            startTime              endTime
0   1  2017-03-09 10:05:23  2017-03-09 10:05:33
1   1  2017-03-09 10:09:53  2017-03-09 10:09:58
2   2  2017-03-09 10:11:03  2017-03-09 10:29:43
3   2  2017-03-09 10:41:04  2017-03-09 12:41:24
4   2  2017-03-09 17:02:56  2017-03-09 17:03:21
应为:

   id  time         
0   1  00:04:20 
2   2  00:11:21 
3   2  03:21:32
使用:

#create index by column id
df = df.set_index('id')
#convert columns to datetimes and shift startTime per groups 
df['startTime'] = pd.to_datetime(df['startTime']).groupby(level=0).shift(-1)
df['endTime'] = pd.to_datetime(df['endTime'])

#subtract, remove first missing values per groups and set column from index
df = df['startTime'].sub(df['endTime']).dropna().reset_index(name='time')
print (df)
   id     time
0   1 00:04:20
1   2 00:11:21
2   2 04:21:32