You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Holt-Winters指数平滑模型的预测值导出至Excel?

将Holt-Winters预测值导出至Excel

核心思路

statsmodels生成的预测结果是pandas Series格式,直接用pandas的to_excel()方法就能导出到Excel,需要依赖openpyxl库作为xlsx格式的引擎。

步骤与优化后的代码

首先安装所需依赖(如果未安装):

pip install pandas openpyxl

修改你的代码,注意不要重复调用fit()(重复拟合会浪费计算资源,且可能因随机种子导致结果细微差异),复用已拟合好的results_1对象:

import statsmodels as sm
import pandas as pd

# 初始化模型并拟合(仅拟合一次)
model_expo1 = sm.tsa.holtwinters.ExponentialSmoothing(
    monthly_series, trend='add', seasonal='add', seasonal_periods=12
)
results_1 = model_expo1.fit()

# 计算历史数据拟合值
fit1 = results_1.predict(start=0, end=len(monthly_series)-1)
# 计算MAE
mae1 = abs(monthly_series - fit1).mean()

# 生成包含历史拟合+未来12期的完整预测
forecast1 = results_1.predict(start=0, end=len(monthly_series)+11)

# 绘制对比图表
monthly_series.plot(label='actual')
forecast1.plot(label='forecast')

# --- 导出预测值到Excel ---
# 整理成DataFrame,方便对比实际值与预测值
export_df = pd.DataFrame({
    '实际值': monthly_series,
    '拟合/预测值': forecast1
})

# 导出到Excel,index=True保留时间索引(若monthly_series带时间索引)
export_df.to_excel('holt_winters预测结果.xlsx', engine='openpyxl', index=True)

关键说明

  • 若monthly_series是带时间索引的pandas Series,导出后的Excel会自动保留时间列,便于数据对应。
  • engine='openpyxl'是导出xlsx格式的必要参数,若需导出xls格式可改用engine='xlwt'(需额外安装xlwt库)。
  • 可通过to_excel的参数自定义导出细节:比如sheet_name='预测结果'设置工作表名称,na_rep='-'填充空值等。

内容的提问来源于stack exchange,提问作者Asad Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:30:40