Sklearn 转换错误:预期的二维数组,而是得到一维数组

use*_*519 4 python arrays scikit-learn

我使用 sklearn 使用此代码转换数据。

sc = MinMaxScaler()

test= df['outcome']
y = sc.fit_transform(test) 
Run Code Online (Sandbox Code Playgroud)

它显示这样的错误。

ValueError: Expected 2D array, got 1D array instead:
array=[ 21000. 36000.  5000. ...  7000.  12000.  11000.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
Run Code Online (Sandbox Code Playgroud)

如何解决?

Ary*_*rez 10

如果我没记错的话,MinMaxScalar可以接受 apandas dataframe但不能接受 a series,所以只需执行test = df[['outcome']](dataframe with one column) 而不是test = df['outcome'](a series)。


GIR*_*yal 5

MinMaxScaler 需要 numpy 输入形状为(num_sample,1)但您提供的输入形状为(num_sample,)尝试以下代码:

sc = MinMaxScaler()
test= df['outcome'].values #convert to numpy array
y = sc.fit_transform(test.reshape(-1,1)) 
Run Code Online (Sandbox Code Playgroud)