13

I use sklearn to transform data with this code.

sc = MinMaxScaler()

test= df['outcome']
y = sc.fit_transform(test) 

It show error like this.

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.

How to fix it?

user58519
  • 579
  • 1
  • 4
  • 19

2 Answers2

24

If I remember correctly, MinMaxScalar can accept a pandas dataframe but not a series, so just do test = df[['outcome']] (dataframe with one column) instead of test = df['outcome'] (a series).

Aryerez
  • 3,417
  • 2
  • 9
  • 17
5

MinMaxScaler required numpy input shape as (num_sample,1) but you are giving input as shape (num_sample,) Try this code :

sc = MinMaxScaler()
test= df['outcome'].values #convert to numpy array
y = sc.fit_transform(test.reshape(-1,1)) 
GIRISH kuniyal
  • 740
  • 1
  • 5
  • 14