首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过避免NaNs来滚动一系列

通过避免NaNs来滚动一系列
EN

Stack Overflow用户
提问于 2019-05-14 00:17:20
回答 2查看 271关注 0票数 3

在我的例子中,如何通过避免NaN值来执行滚动计算?

我的系列:

代码语言:javascript
复制
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

我需要计算这个序列的周期2的平均值,我的输出是:

代码语言:javascript
复制
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

使用rolling时,如果您没有两个后续的非NaN值,则平均值将返回NaN,因此它不起作用(低于丢弃NaN的结果):

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-05-14 00:36:25

您可以使用上次显示的值来估算您的数据:

代码语言:javascript
复制
temp = df.fillna(method='ffill')

然后计算滚动平均值:

代码语言:javascript
复制
temp = temp.rolling(2).mean()

最后替换NaNs:

代码语言:javascript
复制
temp.loc[np.isnan(df)] = np.nan
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56116253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档