大熊猫滚动标准如何计算?

时间:2021-03-01 16:58:02

标签: python pandas

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

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

当我应用窗口大小为 6 且 rolling 为 3 的 min_periods,然后应用 .std() 时,我希望结果数据帧中的最后一个值会由 df 中的最后 6 个值计算,即从 [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 显然不是 df 中最后 6 个值的标准差。

0 个答案:

没有答案