python3.x pandas.ewm().std()返回具有半衰期的所有nan

dwthyt8l  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(297)

使用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?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题