【问题标题】:Total Time difference(in millisecond) between rows with respect to column field行之间相对于列字段的总时间差(以毫秒为单位)
【发布时间】:2018-12-04 16:25:35
【问题描述】:

我想计算我的车辆监控系统各行之间的时间差/时间增量。我总共有 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()

【问题讨论】:

    标签: python pandas spyder duration calculation


    【解决方案1】:

    只需groupby 模型并采用diff()

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

    【讨论】:

    • 您好,感谢您的及时回复。那么如果我要使用这行代码,我还需要使用我的代码来做时差吗?或者我必须同时使用两者?
    • 只要确保有一个名为 timestamp 的列将保存您上面的 pd.to_datetime 的返回值。然后运行这行代码:)
    • 嗨!我尝试使用该行,但输出与编辑前完全相同。 :(
    • 什么意思?这不能产生与以前相同的值,因为您是按模型分组的,因此它不会采用不同模型的两行之间的差异。您可能会感到困惑的是,这会返回一个新数据框。所以df 不会改变。或者当然你可以将这行代码的返回值保存在另一个变量中,以后再使用
    • 嗨!非常感谢!我错过了一些东西,因此没有反映出来!但是要“升级”这个问题。反正有没有加起来不同模型的总持续时间差异?我会同时更新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多