基于另一列缩放数据框中的列

时间:2021-07-28 10:19:38

标签: pandas scikit-learn scale minmax

我有如下所示的数据框:

<头>
column1 column2 column3
1 0.01 0.001
2 0.02 0.002
3 0.03 0.003

我想根据第 1 列的最小和最大缩放器缩放第 2 列和第 3 列,以获得以下结果:

<头>
column1 column2 column3
1 1 1
2 2 2
3 3 3

这些数字只是为了轻松理解问题而估算的。

我在网上看到的所有解决方案基本上都使用最小最大值,它们在 0-1 之间缩放列,但我想根据第一列的最小值最大值来缩放它。

2 个答案:

答案 0 :(得分:1)

您可以在第 1 列上安装一个最小-最大缩放器并将其应用于其他列:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
scaler.fit(df['column1'])

将其应用于第 i 列:

df['column_i'] = scaler.transform(df['column_i'])

答案 1 :(得分:0)

@Adrien's answer 非常好,但如果你想在没有外部依赖的情况下做到这一点:

MIN = df.min()
MAX = df.max()
(df-MIN)/(MAX-MIN)*(MAX['column1']-MIN['column1'])+MIN['column1']