SKLearn MinMaxScaler - scale specific columns only

前端 未结 2 1100
我寻月下人不归
我寻月下人不归 2021-01-01 10:44

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

2条回答
  •  执笔经年
    2021-01-01 11:37

    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']])
    

提交回复
热议问题