【发布时间】:2016-11-26 01:53:44
【问题描述】:
我正在看关于窗口函数的教程,但我不太明白为什么下面的代码会产生 NaN。
如果我理解正确,代码会创建一个大小为 2 的滚动窗口。为什么第一行、第四行和第五行都有 NaN?起初,我以为是因为将 NaN 与另一个数字相加会产生 NaN,但后来我不确定为什么第二行不会是 NaN。
dft = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},
index=pd.date_range('20130101 09:00:00', periods=5, freq='s'))
In [58]: dft.rolling(2).sum()
Out[58]:
B
2013-01-01 09:00:00 NaN
2013-01-01 09:00:01 1.0
2013-01-01 09:00:02 3.0
2013-01-01 09:00:03 NaN
2013-01-01 09:00:04 NaN
【问题讨论】:
-
这将允许您从数据框中删除
NaNs,如果这是您想要做的:dft[dft['B'].notnull()].rolling(2).sum()