我是一个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
将这些信息作为一系列生成,但无法完全了解如何生成像我想要的输出这样的数据帧。如果可能的话,我想以一种更“Pythonic”的方式来做。
#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
关于python - 从提取的分组数据生成新的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567693/