【发布时间】:2022-01-20 05:18:28
【问题描述】:
我有一个包含 nan 值的数据集,我正在尝试使用滚动平均值填充这些值。我这样做的代码如下:
df = pd.DataFrame({'vals': med_vals})
print(df[353:363])
vals
353 17682.196292
354 13796.403594
355 14880.418179
356 14139.141779
357 15397.070537
358 15108.345602
359 14286.259755
360 14962.745719
361 NaN
362 NaN
df_filled = df.fillna(df.rolling(7,min_periods = 1).mean())
print(df_filled[353:365])
vals
353 17682.196292
354 13796.403594
355 14880.418179
356 14139.141779
357 15397.070537
358 15108.345602
359 14286.259755
360 14962.745719
361 14795.663595
362 14778.712678
363 14938.605403
364 14785.783692
365 14624.502737
366 14962.745719
367 NaN
368 NaN
369 NaN
我怎样才能让我的代码在计算滚动平均值时考虑到之前填写的值?
编辑:我找到了一个可行的方法,但我对它不太满意:
while pd.isnull(df).any().any() == True:
df.fillna(df.rolling(window=8,min_periods = 7).mean(), inplace = True)
【问题讨论】:
标签: python pandas dataframe fillna