Итак, у меня есть еженедельные данные о продажах:
# Create the dataframe
test_df = pd.DataFrame({'year': [2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018], 'week': [9, 10, 11, 12, 13, 14, 15, 16, 17], 'sales': [100, 200, 100, 300, 200, 100, 200, 100, 300]})
# Convert the week and
test_df['date'] = test_df["year"].astype(str) + '-' + test_df["week"].astype(str)
test_df['date'] = pd.to_datetime(test_df['date'] + '0', format='%Y-%W%w')
test_df
Это результирующий фрейм данных:
year week sales date
0 2018 9 100 2018-03-04
1 2018 10 200 2018-03-11
2 2018 11 100 2018-03-18
3 2018 12 300 2018-03-25
4 2018 13 200 2018-04-01
5 2018 14 100 2018-04-08
6 2018 15 200 2018-04-15
7 2018 16 100 2018-04-22
8 2018 17 300 2018-04-29
Теперь я хотел бы сгладить эти данные и пересчитать их по месяцам или кварталам , чтобы сделать более стабильные долгосрочные прогнозы. Однако при повторной выборке данных в квартальные или месячные данные каждый период будет иметь разное количество недель, примерно 4 и 5 (или 13, 12, 11 в случае ежеквартально):
test_df = test_df.set_index('date')
test_df = test_df.resample('M').sum()
test_df.drop(columns=['year', 'week'])
Это дает:
sales
date
2018-03-31 700
2018-04-30 900
Теперь я понимаю, что месяцы имеют разное количество недель. Тем не менее, кварталы должны всегда иметь одинаковое количество недель, если первая неделя начинается 1 января, верно?
Мой вопрос: я что-то упускаю при преобразовании год-неделя -> дата? Это может стать проблемой, если я создам из этого различные подпоследовательности для обучения модели прогнозирования.