用 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())
我有一个数据框,其中一些列有 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())