Python 带有数据帧的StandardScaler ValueError错误
我正在尝试将Python 带有数据帧的StandardScaler ValueError错误,python,pandas,machine-learning,data-structures,keras,Python,Pandas,Machine Learning,Data Structures,Keras,我正在尝试将StandardScaler()应用于pandas.core.frame.DataFrame中保存的一些训练数据。在这个过程中,我得到了一个ValueError:使用序列设置数组元素 这通常发生在试图将不适当的数据类型传递到StandardScaler()中(如列表)时,但这只是一个dataframe(对于这种类型的工作来说有点标准)。代码如下所示: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size
StandardScaler()
应用于pandas.core.frame.DataFrame
中保存的一些训练数据。在这个过程中,我得到了一个ValueError:使用序列设置数组元素
这通常发生在试图将不适当的数据类型传递到StandardScaler()中(如列表)时,但这只是一个dataframe(对于这种类型的工作来说有点标准)。代码如下所示:
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
。我已经研究了许多其他与此相关的问题,但没有一个解决方案适合我(大多数解决方案没有与我相同的数据帧类型)
我的问题是,如何使用这种类型的数据帧来正确缩放数据?或者,我如何轻松地更改数据框以使用StandardScaler()
?我个人喜欢在类中组织数据以更好地表示
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的拟合和转换列表