1

我注意到了我没想到的 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 值的系列。

干杯,克里斯托夫

4

0 回答 0