【问题标题】:Scale columns in dataframe based on another column根据另一列缩放数据框中的列
【发布时间】:2021-07-28 10:19:38
【问题描述】:

我有如下所示的数据框:

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

【问题讨论】:

    标签: pandas scikit-learn scale minmax


    【解决方案1】:

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

    from sklearn.preprocessing import MinMaxScaler
    
    scaler = MinMaxScaler()
    scaler.fit(df['column1'])
    

    将其应用于第 i 列:

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

    【讨论】:

      【解决方案2】:

      @Adrien's answer 很好,但是如果你想在没有外部依赖的情况下这样做:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 2017-11-11
        • 1970-01-01
        • 2019-12-18
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        相关资源
        最近更新 更多