You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中按分组ID应用sklearn.preprocessing.MinMaxScaler

按ID分组对指定列应用MinMaxScaler实现归一化

你可以通过分组后自定义函数处理的方式实现按id分组对指定列应用MinMaxScaler,以下是完整实现代码和说明:

原始DataFrame构建代码

import pandas as pd

# 创建数据集
data = {'id': ['A', 'A', 'A', 'A', 'A','A', 'A',
               'B', 'B', 'B', 'B', 'B', 'B',
               'C', 'C', 'C', 'C', 'C',
               'D', 'D', 'D', 'D',
               'E', 'E', 'E', 'E', 'E','E'],
        'cycle': [1,2, 3, 4, 5,6,7,
                   1,2, 3,4,5,6,
                   1,2, 3, 4, 5,
                  1,2, 3, 4,
                  1,2, 3, 4, 5,6,],
        'Salary': [7, 7, 7,8,9,10,15,
                   4, 4, 4,4,5,6,
                   8,9,10,12,13,
                   8,9,10,11,
                   7, 11,12,13,14,15,],
        'Jobs': [123, 18, 69, 65, 120, 11, 52,
                 96, 120,10, 141, 52,6,
                 101,99, 128, 1, 141,
                 141,123, 12, 66,
                 12, 128, 66, 100, 141, 52,],
        'Days': [123, 128, 66, 66, 120, 141, 52,
                 96, 120,120, 141, 52,96,
                 15,123, 128, 120, 141,
                 141,123, 128, 66,
                 123, 128, 66, 120, 141, 52,],
        }

# 转换为DataFrame
df = pd.DataFrame(data)

分组归一化实现代码

from sklearn.preprocessing import MinMaxScaler

# 定义分组处理函数:对指定列应用MinMaxScaler
def scale_group(group):
    scaler = MinMaxScaler()
    # 指定需要归一化的目标列
    cols_to_scale = ['Salary', 'Jobs', 'Days']
    # 对目标列执行归一化并替换原数据
    group[cols_to_scale] = scaler.fit_transform(group[cols_to_scale])
    return group

# 按id分组处理,重置索引保持结构一致
scaled_df = df.groupby('id', group_keys=False).apply(scale_group).reset_index(drop=True)

# 查看处理结果
print(scaled_df)

关键说明

  • groupby('id', group_keys=False):按id维度分组,group_keys=False避免生成冗余的分组索引列
  • 自定义scale_group函数:针对每个独立分组初始化归一化器,仅对指定的三列执行拟合和转换操作,直接覆盖原列值
  • reset_index(drop=True):将分组后产生的多级索引重置为连续普通索引,保证结果DataFrame结构与原始数据一致

处理后每个id分组内的Salary、Jobs、Days列都会被归一化至[0,1]区间,符合预期效果。

内容的提问来源于stack exchange,提问作者NN_Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:30:49