我有一个简单的数据框如下:
df = pd.DataFrame([np.nan, np.nan, 0.004, 0.002, -0.002, 0, np.nan, np.nan, np.nan, 1e-8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
0
0 NaN
1 NaN
2 4.000000e-03
3 2.000000e-03
4 -2.000000e-03
5 0.000000e+00
6 NaN
7 NaN
8 NaN
9 1.000000e-08
10 0.000000e+00
11 0.000000e+00
12 0.000000e+00
13 0.000000e+00
14 0.000000e+00
15 0.000000e+00
16 0.000000e+00
17 0.000000e+00
18 0.000000e+00
19 0.000000e+00
当我应用rolling窗口大小为 6 和 amin_periods为 3 的 a ,然后应用 a.std()时,我希望结果数据帧中的最后一个值将根据 中的最后 6 个值计算df,即从中[0,0,0,0,0,0]应产生 0。相反,但是,df.rolling(6, min_periods=3).std()产生了以下输出:
0
0 NaN
1 NaN
2 NaN
3 NaN
4 3.055050e-03
5 2.581989e-03
6 2.581989e-03
7 2.581989e-03
8 2.000000e-03
9 1.154703e-03
10 5.773517e-09
11 5.773517e-09
12 5.000011e-09
13 4.472145e-09
14 4.082491e-09
15 8.148571e-12
16 8.148571e-12
17 8.148571e-12
18 8.148571e-12
19 8.148571e-12
其中最后一个值 8.148571e-12 显然不是最后 6 个值的标准差df。