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

如何将ftse_change Dataframe转换为时间序列数组适配ML模型

DataFrame转时间序列(ts)格式:差异说明+转换方法

核心差异说明

  • DataFrame:二维表格结构,可容纳多列无关数据,索引类型无强制要求,侧重数据的结构化存储
  • 时间序列(ts):一维/多变量的有序数据,核心是时间索引的连续性与有序性,数据严格按时间顺序排列,专门适配时间序列分析或时序机器学习模型

转换步骤(分场景)

场景1:转pandas内置时间序列(最通用)

大部分时间序列库(pandas、statsmodels、Prophet等)都兼容这种格式,本质是带DatetimeIndex的pandas Series:

import pandas as pd

# 1. 确保时间列是datetime类型(假设你的DataFrame有一列叫date)
df['date'] = pd.to_datetime(df['date'])
# 2. 设置时间列为索引,提取目标时间序列列
ts = df.set_index('date')['ftse_change']

# 验证格式:索引必须是DatetimeIndex
print(type(ts.index))  # 输出 <class 'pandas.core.indexes.datetimes.DatetimeIndex'>

场景2:适配statsmodels时间序列模型

statsmodels原生支持pandas时间序列格式,无需额外转换,直接传入即可:

import statsmodels.api as sm

# 用pandas Series直接初始化ARIMA模型
model = sm.tsa.ARIMA(ts, order=(1,1,1))
results = model.fit()

场景3:适配普通机器学习模型(如scikit-learn)

普通ML模型需要把时序数据转为监督学习格式(特征矩阵+标签),需构造滑动窗口:

import numpy as np

def create_sliding_window(data, seq_len):
    X, y = [], []
    for i in range(len(data) - seq_len):
        # 用过去seq_len个数据作为特征
        X.append(data[i:i+seq_len])
        # 下一个数据作为预测标签
        y.append(data[i+seq_len])
    return np.array(X), np.array(y)

# 提取时间序列的数值数组
ts_values = ts.values
# 构造窗口(示例:用过去7天数据预测第8天)
X_train, y_train = create_sliding_window(ts_values, seq_len=7)

# X_train形状:(样本数, 7),y_train形状:(样本数,)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:05:59