pandas の roll_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+4)/2 のように、最後の値は 3.5 になると思います。
これはバグですか、それとも機能ですか? 「金融」ローリング手段と「科学的」ローリング手段が異なることは承知していますが、これにより NaN 値のないシリーズが生成されるはずです。
乾杯、クリストフ