Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SKLearn MinMaxScaler - scale specific columns only

I'd like to scale some (but not all) of the columns in a Pandas dataFrame using a MinMaxScaler. How can I do it?

like image 538
lte__ Avatar asked May 07 '17 17:05

lte__


People also ask

What is the difference between MinMaxScaler and StandardScaler?

StandardScaler follows Standard Normal Distribution (SND). Therefore, it makes mean = 0 and scales the data to unit variance. MinMaxScaler scales all the data features in the range [0, 1] or else in the range [-1, 1] if there are negative values in the dataset.


1 Answers

Demo:

In [90]: df = pd.DataFrame(np.random.randn(5, 3), index=list('abcde'), columns=list('xyz'))  In [91]: df Out[91]:           x         y         z a -0.325882 -0.299432 -0.182373 b -0.833546 -0.472082  1.158938 c -0.328513 -0.664035  0.789414 d -0.031630 -1.040802 -1.553518 e  0.813328  0.076450  0.022122  In [92]: from sklearn.preprocessing import MinMaxScaler  In [93]: mms = MinMaxScaler()  In [94]: df[['x','z']] = mms.fit_transform(df[['x','z']])  In [95]: df Out[95]:           x         y         z a  0.308259 -0.299432  0.505500 b  0.000000 -0.472082  1.000000 c  0.306662 -0.664035  0.863768 d  0.486932 -1.040802  0.000000 e  1.000000  0.076450  0.580891 

the same result can be also achieved using sklearn.preprocessing.minmax_scale:

from sklearn.preprocessing import minmax_scale  df[['x','z']] = minmax_scale(df[['x','z']]) 
like image 62
MaxU - stop WAR against UA Avatar answered Sep 18 '22 23:09

MaxU - stop WAR against UA