Внедрение скользящих и расширяющихся средств агрегации квартальных данных по месяцам - PullRequest
0 голосов
/ 05 апреля 2020

То, что я пытаюсь выполнить sh, - это правильно отложить данные о продажах временных рядов, чтобы я мог получить две вещи из ежемесячных данных о продажах:

  1. Среднее значение за тот же квартал в течение предыдущий год
  2. Среднее значение за тот же квартал всех предыдущих лет (история c: не включая текущий квартал)

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

enter image description here

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

# rolling_mean_of_same_quarter_previous_year
d = new_d['sales'].rolling(3).agg(['mean'])
new_d['PREV_YEAR_SAME_Q_MEAN'] = d[2::3]
new_d['PREV_YEAR_SAME_Q_MEAN'] = new_d['PREV_YEAR_SAME_Q_MEAN'].shift(1)


# rolling_mean_of_all_same_quarters_all_previous_years
new_d['PREV_YEARS_ALL_SAME_Q_MEANS'] = new_d['PREV_YEAR_SAME_Q_MEAN'].expanding().agg(['mean'])

И этот код не решает проблему, которую я выделил. Любая помощь в этом очень ценится.

...