根据另一列缩放数据框中的列

问题描述 投票:0回答:3

我有如下所示的数据框:

第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 之间缩放列,但我想根据第一列的最小最大来缩放它。

pandas scikit-learn scale minmax
3个回答
1
投票

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

from sklearn.preprocessing import MinMaxScaler

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

将其应用到第 i 列:

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

1
投票

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

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

0
投票

你可以这样做: 从 sklearn.preprocessing 导入 MinMaxScaler

缩放器 = MinMaxScaler()

df[["column_i"]] = scaler.fit_transform(df[["column_i"]])

© www.soinside.com 2019 - 2024. All rights reserved.