我有一个如下所示的 DataFrame:
f_period f_year f_month subject month year value
20140102 2014 1 a 1 2018 10
20140109 2014 1 a 1 2018 12
20140116 2014 1 a 1 2018 8
20140202 2014 2 a 1 2018 20
20140209 2014 2 a 1 2018 15
20140102 2014 1 b 1 2018 10
20140109 2014 1 b 1 2018 12
20140116 2014 1 b 1 2018 8
20140202 2014 2 b 1 2018 20
20140209 2014 2 b 1 2018 15
的f_period为SKU(列预测时的日期subject)制成。的month和year列是该预测被做了周期。例如,第一行表示 on 01/02/2018,该模型预测要在year of year 中设置10产品单位。a12018
我正在尝试通过subject, by monthfor 2创建滚动平均预测f_months。DataFrame 应如下所示:
f_period f_year f_month subject month year value mnthly_avg rolling_2_avg
20140102 2014 1 a 1 2018 10 10 13
20140109 2014 1 a 1 2018 12 10 13
20140116 2014 1 a 1 2018 8 10 13
20140202 2014 2 a 1 2018 20 17.5 null
20140209 2014 2 a 1 2018 15 17.5 null
20140102 2014 1 b 1 2018 10 10 13
20140109 2014 1 b 1 2018 12 10 13
20140116 2014 1 b 1 2018 8 10 13
20140202 2014 2 b 1 2018 20 17.5 null
20140209 2014 2 b 1 2018 15 17.5 null
我尝试过的事情:
我能够mnthly_avg通过:
data_df['monthly_avg'] = data_df.groupby(['f_month', 'f_year', 'year', 'month', 'period', 'subject']).\
value.transform('mean')
这给了我意想不到的输出。我不明白它是如何计算值的rolling_2_avg
我如何GROUP BYsubject和month再排序f_month,然后取平均值未来两月的平均水平?
沧海一幻觉
月关宝盒
相关分类