如何将Auto ARIMA输出的pdq元组列表转换为行式DataFrame
多列时间序列Auto ARIMA结果整理为指定DataFrame
你可以直接利用收集到的autoarima_results列表和原数据的列名,通过pandas快速构造目标格式的DataFrame,以下是修改后的完整代码:
import pandas as pd import pmdarima as pm # 假设你的时间序列数据已加载到df中,建议先将date列设为索引 # df = df.set_index('date') autoarima_results = [] cols = df.columns # 获取所有时间序列列名 for col in cols: print(f"Auto Arima处理: {col}") ARIMA_model = pm.auto_arima( df[col], start_p=1, start_q=1, test="adf", max_p=5, max_q=5, d=None, trace=True, error_action="ignore", suppress_warnings=True, stepwise=True, ) # 可选:打印模型详细摘要 # print(ARIMA_model.summary()) autoarima_results.append(ARIMA_model.order) # 构造目标格式的DataFrame result_df = pd.DataFrame({ 'Results': cols, 'pdq_values': autoarima_results }) # 若需要将列名设为索引,可取消下面注释 # result_df = result_df.set_index('Results') # 输出结果 print(result_df)
关键说明:
autoarima_results列表的元素顺序和cols(原数据列名)完全对应,因此可以直接配对构造DataFrame- 运行后得到的
result_df就是你需要的格式:每行对应原数据的一列,以及该列Auto ARIMA选出的(p,d,q)阶数
示例输出(对应你的需求格式):
Results pdq_values 0 Col1 (1, 1, 0) 1 Col2 (2, 1, 1) 2 Col3 (1, 1, 1) ...
内容的提问来源于stack exchange,提问作者A Newbie
相关产品推荐
相关产品推荐

