嗨,我正在尝试将 facebook-prophet 并行化为面板时间序列。每个系列都是相互独立的,所以放在一起应该没有问题。我想做的是同时为每个系列安装一个先知模型。我在下面试过:
def prop(df):
prop_feat = pd.DataFrame(columns = ['ds', 'trend', 'yhat_lower', 'yhat_upper', 'trend_lower', 'trend_upper',
'daily', 'daily_lower', 'daily_upper', 'weekly', 'weekly_lower',
'weekly_upper', 'yhat'])
for t,n in tqdm(enumerate(range(100, len(df)))):
m = Prophet(yearly_seasonality=False, weekly_seasonality=8, daily_seasonality=10, changepoint_prior_scale=0.05, changepoint_range = 1)
m.fit(df.iloc[:n, :].drop(["O2_ID", ], axis=1))
future = m.make_future_dataframe(periods=1, freq="h")
forecast = m.predict(future)
prop_feat.loc[t, :] = forecast.loc[len(forecast)-1, ['ds', 'trend', 'yhat_lower', 'yhat_upper', 'trend_lower', 'trend_upper',
'daily', 'daily_lower', 'daily_upper', 'weekly', 'weekly_lower',
'weekly_upper', 'yhat']]
prop_feat["ds"] = prop_feat.ds - pd.Timedelta("1h")
return pd.merge(df, prop_feat, on="ds")
pandarallel.initialize()
z = df_trial.groupby("O2_ID", as_index=False).parallel_apply(prop)
在运行了几次迭代后,它给出了以下错误:
类型错误:_is_indexed_like() 缺少 1 个必需的位置参数:“轴”
任何人都可以帮助我解决错误。或者提出不同的方法来实现我想要做的事情?
PS:以下工作正常:z = df_trial.groupby("O2_ID", as_index=False).apply(prop)
编辑:
示例数据,数据框的前 5 行: