规范化sklearn

问题描述:

比方说,我有一个熊猫的数据帧,我想正常化只有某些属性,但不能使用此功能的帮助下,整个数据帧:规范化sklearn

preprocessing.normalize 

,我想就地这些标准化列到我的数据框。但我不能因为它有不同的格式(numpy数组)。

我已经看到了怎么办正常化其他方式,例如我不喜欢这样的:

s0 = X.iloc[:,13:15] 
X.iloc[:,13:15] = (s0 - s0.mean())/(s0.max() - s0.min()) 
X.head() 

但我真的需要使用sklearn做到这一点。 谢谢,堆栈!

+0

你有没有意思是's0 - s0.min()'或's0 - s0.mean()'?前者是最小/最大尺度,后者是什么? – Psidom

你在做什么是Min-max缩放。在scikit中,"normalize"与你想要做的有不同的含义。

尝试MinMaxScaler

而大多数sklearn转换器只输出numpy数组。对于数据框中,你可以简单地重新分配列数据框像下面的例子:

import pandas as pd 
import numpy as np 

df = pd.DataFrame(data=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['A', 'B', 'C']) 

现在让我们说你只需要最小 - 最大规模列A和C:

from sklearn.preprocessing import MinMaxScaler 
minmax = MinMaxScaler() 
df[['A', 'C']] = minmax.fit_transform(df[['A', 'C']])