我有一个数据框df:
DATE GROUP COUNT
01-01-2018 A 12
01-02-2018 A 8
01-03-2018 A 30
..
01-02-2018 Y 221
01-03-2018 Y 343
01-01-2018 Z 67
01-02-2018 Z 65
01-03-2018 Z 88
我想使用ExponentialSmoothing
中的statsmodels
为每个组(A,B..Z)生成独立的预测。如果为组创建一个全新的数据框,我就能使其正常工作:
from statsmodels.tsa.api import ExponentialSmoothing
A_df=df.[df['GROUP']=='A']
train=A_df[0:200]
test=A_df[200:]
fit=ExponentialSmoothing(np.asarray(train["COUNT"]), seasonal_periods=360,
trend='add', seasonal='add').fit()
A_df['ExpSmooth']=fit.forecase(len(test))
假设结果:
DATE GROUP COUNT ExpSmooth
01-01-2018 A 12 15
01-02-2018 A 8 10
01-03-2018 A 30 15
01-04-2018 A 11 11
是否有一种简便的方法来获取pandas / statsmodels,以将每个组视为大数据框中的自己完整的数据集,并为每个组创建新的数据框? 即
Bdf=df[df['GROUP']=='B']
Cdf=df[df['GROUP']=='C']