所以我有每周的销售数据:
# 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月1日开始,那么季度应该总是具有相同的星期数,对吧?
我的问题是,我从年份-周->日期的转换中是否缺少某些内容?如果我从中创建不同的子序列来训练预测模型,这将是一个问题。