将缺失数据处理为 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
我有一个日期间隔长达 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