1

嗨,我正在尝试将 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 行:

前 5 行

4

0 回答 0