dow*_*jie 6 python datetime numpy python-3.x pandas
如何通过避免NaN我的情况下的值来执行滚动计算?
我的系列:
2019-05-01 0.1
2019-05-02 0.2
2019-05-03 NaN
2019-05-04 NaN
2019-05-05 NaN
2019-05-06 0.1
2019-05-07 0.5
2019-05-08 NaN
2019-05-09 0.1
2019-05-10 0.2
2019-05-11 NaN
2019-05-12 NaN
2019-05-13 0.3
Run Code Online (Sandbox Code Playgroud)
我需要计算这个系列的第 2 周期的平均值,我的输出是:
2019-05-01 NaN
2019-05-02 0.15
2019-05-03 NaN
2019-05-04 NaN
2019-05-05 NaN
2019-05-06 0.15
2019-05-07 0.30
2019-05-08 NaN
2019-05-09 0.30
2019-05-10 0.15
2019-05-11 NaN
2019-05-12 NaN
2019-05-13 0.25
Run Code Online (Sandbox Code Playgroud)
使用rolling,如果您没有 2 个后续非NaN值,则平均值将返回 NaN,因此它不起作用(低于删除 NaN 的结果):
2019-05-01 NaN
2019-05-02 0.15
2019-05-03 NaN
2019-05-04 NaN
2019-05-05 NaN
2019-05-06 NaN
2019-05-07 0.30
2019-05-08 NaN
2019-05-09 NaN
2019-05-10 0.15
2019-05-11 NaN
2019-05-12 NaN
2019-05-13 NaN
Run Code Online (Sandbox Code Playgroud)
在你的情况下dropna先然后rolling reindex回来
s.dropna().rolling(2).mean().reindex(s.index)
Out[796]:
2019-05-01 NaN
2019-05-02 0.15
2019-05-03 NaN
2019-05-04 NaN
2019-05-05 NaN
2019-05-06 0.15
2019-05-07 0.30
2019-05-08 NaN
2019-05-09 0.30
2019-05-10 0.15
2019-05-11 NaN
2019-05-12 NaN
2019-05-13 0.25
Name: x, dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |