X-индекс не найден при попытке разделить на обучающие / тестовые наборы - PullRequest
1 голос
/ 22 сентября 2019

У меня есть большой фрейм данных X с плавающей точкой и массив целевых значений y, которые я пытаюсь разделить для обучения и тестирования наборов.Однако я получаю следующую ошибку: KeyError: "None of [Int64Index([ 0, 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 40, 41,\n 42],\n dtype='int64')] are in the [columns]"

Это мой код:

split = KFold(n_splits=5, shuffle=True, random_state=42)
for train_index, test_index in split.split(X, y):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

Я попытался преобразовать индекс df в int, используя:

X = X.set_index(X.index.astype(int))

но ошибка остается той же.Я думаю, что с индексом df происходит что-то, что означает, что код не может найти индексы train / test, но я не понимаю, почему это так?

1 Ответ

1 голос
/ 22 сентября 2019

Ваш код работает, если X и y являются массивами, а не фреймами данных.Чтобы использовать с пандой dataframe, измените X[train_index] на X.iloc[train_index]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...