У меня есть следующий рабочий код:
imputer = Imputer(missing_values = 'NaN', strategy='mean', axis = 0)
imputer = imputer.fit(X_train[['Age']])
X_train['Age'] = imputer.transform(X_train[['Age']])
И это выдает мне следующее предупреждение:
Значение пытается быть установлено на копию фрагмента изDataFrame.Попробуйте использовать .loc [row_indexer, col_indexer] = значение вместо
Когда я использую следующую строку, я все еще получаю то же предупреждение;почему это так:
X_train['Age'] = imputer.transform(X_train[['Age']])
Если я пытаюсь применить ко всем одинаковую логику:
imputer = Imputer(missing_values = 'NaN', strategy='mean', axis = 0)
imputer = imputer.fit(X_train.loc[:,'Age'])
X_train.loc[:,'Age'] = imputer.transform(X_train.loc[:, 'Age'])
Я получаю следующее сообщение, и imputer
не работает:
Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют одну функцию, или array.reshape (1, -1), если они содержат один образец.
Пожалуйста, кто-нибудь может объяснить мне, каким должен быть правильный способ передачи столбца в импуттер с использованием меток?
Я не понимаю четко разницу между использованием [['Age']]
и .loc[:,'Age']
, этопохоже, они имеют те же данные, но в другой форме.