我试图弄清楚pandas用于具有时间偏移量的滚动均值的算法,因为手动计算时会得到意外的结果。
我的数据在数据框中格式化,其值的粒度为1分钟,如下所示:
Datetime Values
2018-02-02 21:27:00 3175.068017
2018-02-02 21:28:00 3163.183960
2018-02-02 21:29:00 3175.972021
2018-02-02 21:30:00 3188.535987
2018-02-02 21:31:00 3192.447974
列的dtype是:
Datetime is datetime64[ns]
Values is float64
有时时间序列是不规则的(跳过一分钟-或更长的时间),因此我尝试将时间偏移量用于滚动平均值。我想要1小时滚动平均值,我使用的命令是:
df.rolling('H').mean()
我的理解是,该默认设置为min_periods=1
。我已经尝试了1分钟的滚动平均值,并且恢复了预期。但是对于1个小时,我没有达到我的期望,但是我也不知道它在使用哪种算法。
因此,对于min_periods=1
,我期望计算为:
Datetime Avg Interval
2018-02-02 21:27:00 3216.71147 [21:27-22:26]
2018-02-02 21:28:00 3217.57497 [21:28-22:27]
2018-02-02 21:29:00 3219.08083 [21:29-22:28]
大熊猫给了我
Datetime Avg
2018-02-02 21:27:00 3175.068017 # Same as Raw
2018-02-02 21:28:00 3169.125989
2018-02-02 21:29:00 3171.408000
2018-02-02 21:30:00 3175.689996
我认为可能是假设21:00-21:59
,但该窗口中的平均值为3190.77915
。我基本上只是想确定大熊猫在1H滚动平均粒度下对我的1m数据实际上正在做什么,因为这不是我期望的。