Обработка отсутствующих данных как скользящего среднего последних 5 наблюдений во временном ряду за python - PullRequest
0 голосов
/ 04 августа 2020

У меня есть данные временного ряда с промежутками в 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)

Однако этот dint работал хорошо подходит для прогнозирования. Я также пробовал использовать метод interpolate (), но не получил очень хороших результатов.

Сценарий: места, где отсутствуют значения, в этот день количество не было приобретено. Мне нужно заполнить эти недостающие даты, чтобы сделать прогноз позже.

Я хочу попытаться заполнить недостающее значение скользящим средним последних 5 наблюдений в соответствующую позицию отсутствующего значения в python. Пожалуйста, помогите в этом контексте. Спасибо.

1 Ответ

0 голосов
/ 04 августа 2020

Вам, вероятно, следует использовать for-l oop, чтобы достичь этого, что-то вроде этого:

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
...