【问题标题】:StandardScaler ValueError error with pandas dataframe熊猫数据框的 StandardScaler ValueError 错误
【发布时间】:2020-02-10 02:17:20
【问题描述】:

我正在尝试将StandardScaler() 应用于pandas.core.frame.DataFrame 中保存的一些训练数据。在此过程中,我收到了ValueError: setting an array element with a sequence

这通常发生在尝试将不适当的数据类型传递给 StandardScaler()(如列表)时,但这只是一个 pandas 数据帧(这对于这类工作来说有点标准)。代码如下:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

scaler = StandardScaler()
X_train_new = scaler.fit_transform(X_train)

这给了我上面提到的ValueError。我在这里查看了与此相关的许多其他问题,但没有一个解决方案对我有用(其中大多数没有与我相同的数据框类型)。

我的问题是,如何使用这种类型的 DataFrame 正确缩放我的数据?或者,如何轻松更改 DataFrame 以使用 StandardScaler()

【问题讨论】:

    标签: python pandas machine-learning data-structures keras


    【解决方案1】:

    我个人喜欢在课堂上组织数据以获得更好的表现

    class models:
        def __init__(self):
            self.training_data = pd.read_csv(path + "training_data.csv",header=0)
            self.test_data = pd.read_csv(path + "target_data.csv",header=0)
            self.X_train = self.training_data[[f for f in list(self.training_data)]]
            self.y_train = self.training_data['target']
    
        def StandardScaler(self,x): #to unit variance
            model = preprocessing.StandardScaler(copy=False)
            return model.fit_transform(x)
    

    然后你可以调用 main 中的函数来返回一个适合和转换的 X 和 Y 列表

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2017-06-13
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 2021-07-06
      相关资源
      最近更新 更多