如何使用sklearn.preprocessing.normalize标准化DataFrame的列?

时间:2019-05-10 01:50:26

标签: python pandas scikit-learn normalize

有没有一种方法可以使用sklearn的规范化规范DataFrame的列?我认为默认情况下它会规范行

For example, if I had df:
A     B
1000  10
234   3
500   1.5

我想要得到以下内容:

A       B
1       1
0.234   0.3
0.5     0.15

4 个答案:

答案 0 :(得分:2)

您为什么需要sklearn

只用熊猫:

>>> df / df.max()
       A     B
0  1.000  1.00
1  0.234  0.30
2  0.500  0.15
>>> 

答案 1 :(得分:2)

获取div

后,您可以使用max
df.div(df.max(),1)
Out[456]: 
       A     B
0  1.000  1.00
1  0.234  0.30
2  0.500  0.15

答案 2 :(得分:2)

from sklearn import preprocessing preprocessing.normalize(df, axis=0, norm='max') #array([[1. , 1. ], # [0.234, 0.3 ], # [0.5 , 0.15 ]]) 默认使用L2 normalization规范化行。为了实现所需的规范化,都需要通过沿列的最大值更改这两个参数:

uasort

答案 3 :(得分:0)

documentation

  

轴:0或1,用于标准化数据的可选(默认为1)轴   沿。如果为1,则独立标准化每个样本,否则为(如果为0)   标准化每个功能。

因此只需更改轴即可。话虽这么说,sklearn对于这项任务来说实在是太过分了。使用熊猫可以轻松实现。