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