【问题标题】:SyntaxError while trying to perform RobustScaler on Pandas Dataframe尝试在 Pandas Dataframe 上执行 RobustScaler 时出现 SyntaxError
【发布时间】:2019-07-01 03:17:54
【问题描述】:

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

语法错误:无法分配给函数调用

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

【问题讨论】:

    标签: python python-3.x regression scaling kaggle


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 2020-03-29
      • 2019-04-27
      • 2019-07-09
      • 2021-01-22
      相关资源
      最近更新 更多