简体   繁体   English

具有 nans 的 dataframe 列的移动平均值

[英]Moving average of a dataframe column with nans

I am trying to calculate moving average of a dataframe column.我正在尝试计算 dataframe 列的移动平均值。 The column has some nans.该列有一些 nans。 I tried an already available solution provided here.我尝试了此处提供的现有解决方案。 However, the result is nans only.但是,结果只是 nans。

My code:我的代码:

df = 
      A
0     10   
1     NaN
2     20
3     30
4     40
5     50
6     60
7     NaN

def running_mean(x, N):
    cumsum = np.cumsum(np.insert(x, 0, 0)) 
    return (cumsum[N:] - cumsum[:-N]) / float(N)

x = running_mean(df['A'].values, 2)
plt.plot(x)
plt.show()

Present output:目前output:

x = array([nan, nan, nan, nan, nan, nan, nan])

Do you mean?你的意思是?

df['mean']=df.A.expanding().mean()



    A   mean
0  10.0  10.0
1   NaN  10.0
2  20.0  15.0
3  30.0  20.0
4  40.0  25.0
5  50.0  30.0
6  60.0  35.0
7   NaN  35.0

Or did you want或者你想要

df['meanRolling']=df.A.fillna(0).rolling(2).mean()





    A  meanRolling
0  10.0          NaN
1   NaN          5.0
2  20.0         10.0
3  30.0         25.0
4  40.0         35.0
5  50.0         45.0
6  60.0         55.0
7   NaN         30.0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM