将缺失数据处理为 python 时间序列中最后 5 个观测值的移动平均值

Dealing missing data as moving average of last 5 observations in time series in python

我有一个日期间隔长达 4 个月的时间序列数据。什么是填充这些缺失数据值的最佳方法。

数据类似于:

            Qty
Date
2016-04-01  0.125
2016-05-01  2.750
2016-06-01  4.825
2016-07-01  5.625
2016-08-01  2.475
2016-09-01  NaN
2016-10-01  NaN
2016-11-01  NaN
2016-12-01  1.000
2017-01-01  2.500

我试过这个:

data_mean = data.cumsum() / (~data.isna()).cumsum()
data_mean = data_mean.fillna(method = "ffill")
data = data.fillna(value = data_mean)

但是,这种力量对于预测来说效果很好。我也尝试过使用 interpolate() 方法,但效果很好。

场景是:存在缺失值的地方,当天没有购买数量。我需要填写那些缺失的日期,以便稍后进行预测。

我想尝试用最后 5 个观测值的移动平均值填充缺失值到相应的缺失值位置,在 python 中。 请在这方面提供帮助。谢谢

您可能应该使用 for-loop 来实现此目的,如下所示:

for i in range(len(df)):
    if pd.isna(df.iloc[i, 1]):
        moving = df.iloc[i-5:i, 1].mean()
        df.iloc[i, 1] = moving