我注意到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值的系列。
干杯, 克里斯托夫