1

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 値のないシリーズが生成されるはずです。

乾杯、クリストフ

4

0 に答える 0