6
浮動小数点数を無限に近づけるとパンダが回転するのにエラーが発生します。ここに例を示します:pandas.DataFrame.rollingが巨大な浮動小数点数を使用していません
import pandas as pd
series = pd.Series(1.,index = pd.date_range('2015-01-01', periods=6))
series[series.index[2]] = 1e19
series
2015-01-01 1.000000e+00
2015-01-02 1.000000e+00
2015-01-03 1.000000e+19
2015-01-04 1.000000e+00
2015-01-05 1.000000e+00
2015-01-06 1.000000e+00
Freq: D, dtype: float64
series.rolling('2D', closed = 'left').mean()
2015-01-01 NaN
2015-01-02 1.000000e+00
2015-01-03 1.000000e+00
2015-01-04 5.000000e+18
2015-01-05 5.000000e+18
2015-01-06 5.000000e-01
Freq: D, dtype: float64
最後のビットの答えは1です。 0.5です。大きな数字を使用すると、なぜローリングが起こるのでしょうか?小さなフロートの同じ例:
series[series.index[2]] = 1e9
series.rolling('2D', closed = 'left').mean()
2015-01-01 NaN
2015-01-02 1.0
2015-01-03 1.0
2015-01-04 500000000.5
2015-01-05 500000000.5
2015-01-06 1.0
Freq: D, dtype: float64
.sum()でテストして、何が起こったかを確認します。最後のエントリは1になりますが、2になるはずです。1e19を小さい番号に変更すると、ローリングウィンドウの外にあっても問題は解決され、効果はありません。非常に奇妙な行動!おそらく、[pandas github](https://github.com/pandas-dev/pandas/issues)に発行チケットを提出しますか? –