Python 来自SKL的MinMaxScaler在循环中学习?

Python 来自SKL的MinMaxScaler在循环中学习?,python,scikit-learn,Python,Scikit Learn,我做到了: 一位同事告诉我将MinMaxScaler放入每次初始化的循环中 这真的有必要吗?不,您不需要,您使用的方法是fit\u transform,这意味着它适合然后转换,例如: Scaler = MinMaxScaler() for Key in Data: Columns = Data[Key].columns ScaledData = Scaler.fit_transform(Data[Key]) Data[Key] = pd.DataFrame(ScaledD

我做到了:

一位同事告诉我将MinMaxScaler放入每次初始化的循环中


这真的有必要吗?

不,您不需要,您使用的方法是
fit\u transform
,这意味着它适合然后转换,例如:

Scaler = MinMaxScaler()
for Key in Data:
    Columns = Data[Key].columns
    ScaledData = Scaler.fit_transform(Data[Key])
    Data[Key] = pd.DataFrame(ScaledData, columns=Columns)
缩放数据帧为:

from sklearn.preprocessing import MinMaxScaler
Scaler = MinMaxScaler()
np.random.seed(99)
Data = pd.DataFrame({'a':np.random.uniform(0,1,5),'b':np.random.uniform(1,2,5)})
Data

    a   b
0   0.672279    1.565617
1   0.488078    1.297622
2   0.825495    1.046696
3   0.031446    1.990627
4   0.808050    1.006826

df = pd.DataFrame()
for Key in Data.columns:
    df[Key] = Scaler.fit_transform(Data[[Key]]).ravel()
    print("column is "+ key + " min /max :" + str(Scaler.data_min_[0]) + " " + str(Scaler.data_max_[0]))


column is a min /max :0.031446387626298145 0.8254951740358963
column is a min /max :1.0068257330436552 1.9906273994707961
    a   b
0   0.807044    0.567992
1   0.575068    0.295585
2   1.000000    0.040526
3   0.000000    1.000000
4   0.978030    0.000000