使用pandas文档中的示例,我尝试实现指数移动窗口标准偏差,但代码意外地返回所有nan:
df = pd.DataFrame({
'B': [0, 1, 2, np.nan, 4],
'T': pd.DatetimeIndex(['2020-01-01', '2020-01-03', '2020-01-10', '2020-01-15', '2020-01-17'])
})
df.ewm(halflife='4 days', times='T').std()
返回:
B
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
我希望第一个值是nan,其余的不是(还是我弄错了?)
但是,当我在ewm上运行其.mean()函数时,我得到了正确的输出:
df.ewm(halflife='4 days', times='T').mean()
返回:
B
0 0.000000
1 0.585786
2 1.523889
3 1.523889
4 3.233686
当使用跨度而不是半衰期时,我也得到了一些输出:
df.ewm(span=2).std()
返回:
B
0 NaN
1 0.707107
2 0.919866
3 0.919866
4 1.720513
我是否错误地使用了api/我是否误解了这里的一些概念,或者这是一个bug?
暂无答案!
目前还没有任何答案,快来回答吧!