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

如何用Pandas按main_col分组实现数值的Min-Max归一化(缩放至[0,100])

按组实现Min-Max归一化(最大值缩放为100)

输入数据

main_colsome_metadatavalue
thisTrue10
thisFalse3
thatTrue50
thatFalse10
otherTrue20
otherFalse5

期望输出

main_colsome_metadatavalue (normalized)
thisTrue100
thisFalse30
thatTrue100
thatFalse20
otherTrue100
otherFalse25

实现方法(Python pandas)

用pandas的分组+变换功能可以轻松实现,既保留原表结构,又能按组完成归一化:

import pandas as pd

# 构造输入数据
data = {
    'main_col': ['this', 'this', 'that', 'that', 'other', 'other'],
    'some_metadata': [True, False, True, False, True, False],
    'value': [10, 3, 50, 10, 20, 5]
}
df = pd.DataFrame(data)

# 按main_col分组,将每组value的最大值缩为100,其余值按比例计算
df['value (normalized)'] = df.groupby('main_col')['value'].transform(
    lambda x: (x / x.max()) * 100
)

# 输出结果
print(df[['main_col', 'some_metadata', 'value (normalized)']])

逻辑说明

  • groupby('main_col'):按main_col的不同取值分成独立小组
  • transform:将每个小组的计算结果映射回原DataFrame的对应行,保证原表的行顺序和结构不变
  • 归一化公式:(当前值 / 组内最大值) * 100,直接把组内最大值转为100,其他值按比例缩放

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:15:41