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

在Python中无法在DataFrame上运行sktime.TBATS算法求助

解决sktime TBATS算法的时间序列格式错误

错误原因

你传入forecaster_tbats.fit()的DataFrame使用默认整数索引,sktime无法识别这是合法的时间序列格式——它要求输入数据必须带有兼容的时间类型索引,以此识别时间序列的时间维度。

修正步骤

  1. 将Date列转换为datetime类型,确保sktime能识别时间信息
  2. 将Date列设置为DataFrame的索引
  3. 传入单变量Series或带时间索引的DataFrame给TBATS的fit方法

修正后的代码

import pandas as pd
from sktime.forecasting.tbats import TBATS

# 筛选目标产品数据
df_to_process_tbats = engineered_df_to_process[engineered_df_to_process.Pack == product].reset_index(drop=True)

# 转换Date列为datetime并设置为索引
df_to_process_tbats['Date'] = pd.to_datetime(df_to_process_tbats['Date'])
df_to_process_tbats = df_to_process_tbats.set_index('Date')

# 提取Qty列作为时间序列(推荐用Series,更贴合单变量时间序列场景)
y = df_to_process_tbats['Qty']

# 初始化并训练模型
forecaster_tbats = TBATS()
forecaster_tbats.fit(y)

格式验证工具

如果不确定数据格式是否合规,可使用sktime的诊断工具检查:

from sktime.datatypes import check_raise

# 验证单变量时间序列格式
check_raise(y, mtype="pd.Series")

内容的提问来源于stack exchange,提问作者Andrei Tulbure

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:27:38