Python 从提取的分组数据生成新的数据帧

Python 从提取的分组数据生成新的数据帧,python,datetime,pandas,dataframe,Python,Datetime,Pandas,Dataframe,我是Python新手。我正试图从一系列GPS定位中提取行程持续时间。我试图从多个不同的轨道中获取信息,并将结果放入不同的数据帧中。数据如下所示(不包括纬度和经度列): 所需的输出如下所示: track_id trip_dur 0 track_1 0 days 23:00:00 1 track_2 0 days 14:00:10 2 track_3 1 days 00:00:01 我已经使用groupby成功地将这些信息作为一个系列生成,但

我是Python新手。我正试图从一系列GPS定位中提取行程持续时间。我试图从多个不同的轨道中获取信息,并将结果放入不同的数据帧中。数据如下所示(不包括纬度和经度列):

所需的输出如下所示:

   track_id   trip_dur         
0  track_1    0 days 23:00:00 
1  track_2    0 days 14:00:10 
2  track_3    1 days 00:00:01
我已经使用
groupby
成功地将这些信息作为一个系列生成,但无法像我所期望的输出那样生成数据帧。如果可能的话,我想用一种更“pythonic”的方式

#Calculate trip durations
trip_dur = df.groupby(['track_id'], sort=False)['DateTime'].max() - \
        df.groupby(['track_id'], sort=False)['DateTime'].min()
感谢您的帮助,
干杯

基本上,您可以使用
name
param调用
reset\u index
来恢复“track\u id”列并命名聚合列:

In [44]:
(df.groupby('track_id')['DateTime'].max() - df.groupby('track_id')['DateTime'].min()).reset_index(name='trip_dur')

Out[44]:
  track_id        trip_dur
0  track_1 0 days 23:00:00
1  track_2 0 days 14:00:10
2  track_3 1 days 00:00:01
In [44]:
(df.groupby('track_id')['DateTime'].max() - df.groupby('track_id')['DateTime'].min()).reset_index(name='trip_dur')

Out[44]:
  track_id        trip_dur
0  track_1 0 days 23:00:00
1  track_2 0 days 14:00:10
2  track_3 1 days 00:00:01