用 10 天滚动平均值填充行 - python

Infill rows with 10 day rolling average - python

我有一个数据框,其中一些列有 2 年的数据,而其他列只有几个月

我希望用 10 天滚动平均值的几个月数据填充 2 年剩余时间的数据

df
            A  B  C  D  E
01/01/2021  2  4  3  2  1
.
.
.
01/08/2021 9  9  4  2  9
02/08/2021 8  8 NaN NaN NaN
03/08/2021 8 1 NaN NaN NaN

因此理想情况下,NaN 将填充先前数据的 10 天滚动平均值

这可能吗?

非常感谢任何帮助!

这对任何寻找类似答案的人都有效;

当没有一致的数据可供采样时,它会变得棘手,即它是自己生成的采样数据。

null_cols = ['A','C','D']
while df.loc[:, null_cols].isnull().any().any():
    df.loc[:, null_cols] = df.loc[:, null_cols].fillna(df.loc[:, null_cols].rolling(10, min_periods=1).mean())