有没有一种方法可以使用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
答案 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)
轴:0或1,用于标准化数据的可选(默认为1)轴 沿。如果为1,则独立标准化每个样本,否则为(如果为0) 标准化每个功能。
因此只需更改轴即可。话虽这么说,sklearn
对于这项任务来说实在是太过分了。使用熊猫可以轻松实现。