我有一系列时间戳和不规则间距的测量.这些系列中的值始终代表测量值的变化 - 即没有变化就没有新值.这样一个系列的一个简单例子是:
23:00:00.100 10
23:00:01.200 8
23:00:01.600 0
23:00:06.300 4
Run Code Online (Sandbox Code Playgroud)
我想要达到的是一系列等间隔的时间加权平均值.对于给定的示例,我可能会瞄准基于秒的频率,因此结果如下:
23:00:01 NaN ( the first 100ms are missing )
23:00:02 5.2 ( 10*0.2 + 8*0.4 + 0*0.4 )
23:00:03 0
23:00:04 0
23:00:05 0
23:00:06 2.8 ( 0*0.3 + 4*0.7 )
Run Code Online (Sandbox Code Playgroud)
我正在寻找解决该问题的Python库.对我来说,这似乎是一个标准问题,但到目前为止我在像熊猫这样的标准库中找不到这样的功能.
该算法需要考虑两件事:
data.resample('S', fill_method='pad') # forming a series of seconds
Run Code Online (Sandbox Code Playgroud)
做部分工作.为聚合提供用户定义的函数将允许形成时间加权平均值,但由于忽略了间隔的开始,因此该平均值也将是不正确的.更糟糕的是:系列中的孔用平均值填充,在上面的示例中导致秒3,4和5的值非零.
data = data.resample('L', fill_method='pad') # forming a series of milliseconds
data.resample('S')
Run Code Online (Sandbox Code Playgroud)
具有一定准确性的技巧,但是 - 取决于准确性 - 非常昂贵.在我的情况下,太贵了.
import pandas as pa …Run Code Online (Sandbox Code Playgroud)