我注意到了我没想到的 pandas rolling_mean 函数的行为。
如果我们执行:
ser = pd.Series(np.arange(5),index=pd.date_range(start=datetime(2007,1,1),end=datetime(2007,1,5)))
>>> ser
2007-01-01 0
2007-01-02 1
2007-01-03 2
2007-01-04 3
2007-01-05 4
Freq: D, dtype: int64
>>> avg = pd.rolling_mean(ser,window=3,min_periods=1,center=True)
>>> avg
2007-01-01 0.5
2007-01-02 1.0
2007-01-03 2.0
2007-01-04 3.0
2007-01-05 NaN
Freq: D, dtype: float64
我希望最后一个值是 3.5,如 (3+4)/2,这与系列中的第一个值一致。
这是错误还是功能?我知道“金融”滚动方式和“科学”滚动方式是不同的,但我认为这应该产生一个没有 NaN 值的系列。
干杯,克里斯托夫