SyntaxError при попытке выполнить RobustScaler на Pandas Dataframe - PullRequest
0 голосов
/ 07 февраля 2019

Я работаю с House Prices Kaggle dataset.Я пытаюсь использовать RobustScaler из sklearn только для числовых функций в наборе данных (LotFrontage, LotArea и т. Д.).Сначала я подгоняю данные к числовым значениям моего фрейма данных, вызывая select_dtypes(exclude=['object'].Как только преобразователь будет соответствовать этим значениям, я вызываю функцию transform, пытаясь преобразовать те же самые значения, для которых я просто подгоняю данные, устанавливая преобразователь равным атрибутам исключенных объектов.После этого я получаю следующее сообщение об ошибке:

SyntaxError: невозможно присвоить вызов функции

Данные уже удалены из значений null.Что работало, так это когда я устанавливаю результаты преобразования равными некоторой переменной, я получаю результаты обратно как numpy.ndarray

from sklearn.preprocessing import RobustScaler
transformer = RobustScaler().fit(df_train.select_dtypes(exclude=['object']))

df_train.select_dtypes(exclude=['object']) = transformer.transform(df_train.select_dtypes(exclude=['object'])) # This doesn't work

test = transformer.transform(df_train.select_dtypes(exclude=['object'])) # This DOES work, but not in the format I need

Все, что я хочу, это чтобы преобразованные атрибуты вернулись в исходное значение pandas data frame в соответствующих местах.Есть ли какое-то временное решение, которое я могу реализовать, если не могу напрямую преобразовать исходные результаты в данных?

1 Ответ

0 голосов
/ 08 февраля 2019

Мне удалось заставить его работать.Не уверен, насколько Pythonic это решение, но оно вернуло меня в нужное русло:

df_train[list(df_train.select_dtypes(exclude=['object']).columns)] = RobustScaler().fit_transform(df_train[list(df_train.select_dtypes(exclude=['object']).columns)])
...