我是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