我正在和House Prices Kaggle dataset
合作。我试图只在数据集中的RobustScaler
数值特征 (LotFrontage
、LotArea
等)上使用sklearn中的。首先,通过调用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
中。如果不能直接转换原始数据格式结果,是否可以实现一些解决方案?
发布于 2019-02-08 06:32:07
我设法让它开始工作了。不知道这个解决方案是怎样的,但它让我回到了轨道上:
df_train[list(df_train.select_dtypes(exclude=['object']).columns)] = RobustScaler().fit_transform(df_train[list(df_train.select_dtypes(exclude=['object']).columns)])
https://stackoverflow.com/questions/54566013
复制