我有如下所示的数据框:
第1栏 | 第2栏 | 第3栏 |
---|---|---|
1 | 0.01 | 0.001 |
2 | 0.02 | 0.002 |
3 | 0.03 | 0.003 |
我想根据第 1 列的最小和最大缩放器缩放第 2 列和第 3 列,以获得以下结果:
第1栏 | 第2栏 | 第3栏 |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
这些数字只是为了轻松理解问题而估算的。
我在网上看到的所有解决方案基本上都使用最小最大,它们在 0-1 之间缩放列,但我想根据第一列的最小最大来缩放它。
您可以在第 1 列上安装最小-最大缩放器并将其应用到其他列:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(df['column1'])
将其应用到第 i 列:
df['column_i'] = scaler.transform(df['column_i'])
@Adrien 的回答非常好,但如果你想在没有外部依赖的情况下做到这一点:
MIN = df.min()
MAX = df.max()
(df-MIN)/(MAX-MIN)*(MAX['column1']-MIN['column1'])+MIN['column1']
你可以这样做: 从 sklearn.preprocessing 导入 MinMaxScaler
缩放器 = MinMaxScaler()
df[["column_i"]] = scaler.fit_transform(df[["column_i"]])