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



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

   track_id   DateTime         
0  track_1    2015-12-19 03:39:01 
1  track_1    2015-12-19 14:23:21 
2  track_1    2015-12-20 02:39:01 
3  track_2    2016-01-02 05:44:23 
4  track_2    2016-01-02 12:12:34 
5  track_2    2016-01-02 19:44:33 
6  track_3    2016-01-07 00:44:23 
7  track_3    2016-01-07 13:11:05
8  track_3    2016-01-08 00:44:24

所需的输出看起来像这样:

   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将这些信息作为一个系列来生成,但无法完全理解如何生成像我想要的输出那样的数据帧。如果可能的话,我想用一种更"蟒蛇式"的方式来做。

#Calculate trip durations
trip_dur = df.groupby(['track_id'], sort=False)['DateTime'].max() - 
        df.groupby(['track_id'], sort=False)['DateTime'].min()

感谢任何帮助,干杯

您已经快到了,基本上您可以用name参数调用reset_index来恢复"track_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

相关内容

  • 没有找到相关文章

最新更新