Я пытаюсь создать функцию, которая позволит мне перебирать строку в pandas кадре данных и менять его значения «да», «возможно» или «нет» на 1, 0 и -1 соответственно. Я делал это до того, как использовал точно такой же процесс, но по какой-то причине на этот раз он дает мне ключевую ошибку. Когда он не работал, я попытался упростить его, чтобы посмотреть, правильно ли работает итератор, и обнаружил, что итератор каким-то образом меняет мои данные. Используя приведенный ниже код
def testing(data):
print(data)
for i in range(len(data)):
print(data[i])
testing(train_x['Values'])
Функция возвращает следующее и затем нажимает кнопку «Ошибка ключа: 7»
137 no
84 no
27 yes
127 maybe
132 no
...
9 no
103 yes
67 no
117 maybe
47 no
Name: Value, Length: 120, dtype: object
yes
no
no
no
no
no
no
Кто-нибудь знает, почему это происходит? Это как-то связано с перемешиванием значений из-за train_tests_split? В последний раз, когда я делал это, я делал это до train_test_split, и он работал отлично, но с тех пор я понял, что предварительная обработка данных более эффективна, если она выполняется после разделения, чтобы остановить утечку данных. Если проблема в разделении, есть ли способ решить эту проблему, используя другой итератор?