首页 > 解决方案 > 熊猫中连续非空值的平均值

问题描述

我想在数据框中添加连续非空值的平均值下图显示了输入、所需输出和输出描述。

在此处输入图像描述

如何解决这个问题?

标签: pandasdataframe

解决方案


与由测试缺失值由GroupBy.transform创建的组一起使用,并仅为具有非缺失值的行分配反转掩码:Series.cumsumSeries.isna~

df = pd.DataFrame({'Input':[5,6,7,np.nan, np.nan, np.nan,13,32,12]})

m = df['Input'].isna()

df.loc[~m, 'output'] = df[~m].groupby(m.cumsum())['Input'].transform('mean')
print (df)
   Input  output
0    5.0     6.0
1    6.0     6.0
2    7.0     6.0
3    NaN     NaN
4    NaN     NaN
5    NaN     NaN
6   13.0    19.0
7   32.0    19.0
8   12.0    19.0

推荐阅读