尝试在 Pandas Dataframe 上执行 RobustScaler 时出现语法错误

SyntaxError while trying to perform RobustScaler on Pandas Dataframe

我正在使用 House Prices Kaggle dataset。我正在尝试仅在数据集(LotFrontageLotArea 等)的 数值特征 上使用 sklearn 中的 RobustScaler。首先,我通过调用 select_dtypes(exclude=['object'] 使数据适合我的数据框的数值。一旦转换器适合这些值,我就会调用 transform 函数,尝试通过将转换器设置为对象排除属性来转换我刚刚适合数据的相同值。一旦我尝试这样做,我就会收到以下错误消息:

SyntaxError: can't assign to function call

数据已经删除了 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。如果我不能直接转换原始数据帧结果,是否有一些解决方法可以实施?

我设法让它工作了。不确定这个解决方案有多 Pythonic,但它让我回到正轨:

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