首页 > 解决方案 > 尝试在 Pandas Dataframe 上执行 RobustScaler 时出现 SyntaxError

问题描述

我正在使用House Prices Kaggle dataset. 我正在尝试仅在数据集中的数字特征RobustScaler上使用from sklearn (,等)。首先,我通过调用将数据拟合到我的数据框的数值。一旦转换器适合这些值,我就会调用该函数,尝试通过将转换器设置为等于排除对象的属性来转换那些我刚刚适合数据的相同值。一旦我尝试这样做,我会收到以下错误消息:LotFrontageLotAreaselect_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我想要的只是转换后的属性在其相应位置返回到原始属性。如果我不能直接转换原始数据框结果,是否可以实施一些解决方法?

标签: pythonpython-3.xregressionscalingkaggle

解决方案


我设法让它工作。不知道这个解决方案是多么 Pythonic,但它让我回到了正轨:

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

推荐阅读