【发布时间】:2019-01-06 21:54:54
【问题描述】:
我想在以下数据帧上使用来自 sklearn 的 TimeSeriesSplit 来预测总和:
所以要准备 X 和 y,我执行以下操作:
X = df.drop(['sum'],axis=1)
y = df['sum']
然后将这两个喂给:
for train_index, test_index in tscv.split(X):
X_train01, X_test01 = X[train_index], X[test_index]
y_train01, y_test01 = y[train_index], y[test_index]
这样做,我得到以下错误:
KeyError: '[ 0 1 2 ...] not in index'
这里 X 是一个数据框,显然这会导致错误,因为如果我将 X 转换为数组,如下所示:
X = X.values
然后它将起作用。但是,为了以后对模型的评估,我需要 X 作为数据框。有什么方法可以将 X 保留为数据框并将其提供给 tscv 而无需将其转换为数组?
【问题讨论】:
-
我对@987654327@ 和
tscv对象的类型感到困惑。似乎您有一个时间索引,并且您正在尝试按整数选择索引。试试iloc?
标签: pandas scikit-learn time-series sklearn-pandas train-test-split