1

我有一个简单的数据框如下:

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

4

0 回答 0