行之间相对于列字段的总时间差(以毫秒为单位)

时间:2018-06-26 03:45:39

标签: python pandas spyder duration calculation

我想对车辆监控系统各行之间的时差/时间增量进行计算。我总共有70万行数据,其中包括以下字段:

索引,时间戳,纬度,经度,车辆型号

我的数据中有7种不同的模型

到目前为止,我可以使用如下所示的代码来计算各行的时差:

 mydataset['timestamp'] = pd.to_datetime(mydataset["timestamp"], format = 
 "%Y-%m-%d %H:%M:%S")
 mydataset['timedelta'] = (mydataset['timestamp'] - 
 mydataset['timestamp'].shift().fillna(pd.to_datetime("00:00:00", 
 format="%H:%M:%S")))

使用此代码,我可以找到时差。但是现在,我希望将其过滤到每个单独的车辆模型中。现在,我只能计算每一行的差异。但是某些行包含不同的模型。我有什么办法让它“查看”车辆模型并进行计算?

例如数据

1,x,2018-05-16 09:14:37.343,0 days 00:00:05.000000000
2,x,2018-05-16 09:14:42.343,0 days 00:00:05.000000000
3,x,2018-05-16 09:14:47.343,0 days 00:00:05.000000000
4,x,2018-05-16 09:14:52.344,0 days 00:00:05.001000000
5,x,2018-05-16 09:14:57.344,0 days 00:00:05.000000000
6,y,2018-05-16 09:15:02.344,0 days 00:00:05.000000000
7,y,2018-05-16 09:15:07.344,0 days 00:00:05.000000000
8,y,2018-05-16 09:15:12.344,0 days 00:00:05.000000000
9,x,2018-05-16 09:15:17.344,0 days 00:00:05.000000000
10,x,2018-05-16 09:15:22.345,0 days 00:00:05.001000000

更新!如下所示,是帮助我对车辆模型进行分组的代码。想问一下总计每种模型时差的方法!

mydataset['new'] = mydataset.groupby('Model').timestamp.diff()

1 个答案:

答案 0 :(得分:1)

仅使用groupby模型并采用diff()

>>> df.groupby('model').timestamp.diff()