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

Python中如何使用MinMaxScaler对pandas数据框按分组做归一化?

问题原因
  • 变量名拼写错误:你前面定义的DataFrame变量名是data,但分组时写的是dataframe,运行会直接报变量未定义错误。
  • 输入维度不匹配:MinMaxScaler.fit_transform()要求输入是二维数组,而groupby取出来的x是一维Series,直接传入会触发维度错误。
  • 全局Scaler实例状态污染:你全局只初始化了一个MinMaxScaler,处理不同分组时前一个分组的拟合参数会被后一个覆盖,无法实现每组独立缩放。
正确实现代码
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

data = pd.DataFrame({'x': [1,2,3,4,5],
              'name': ['jo', 'ellen','jo', 'ellen' ,'jo' ]} )

# 按name字段分组,每组独立执行MinMax缩放
data['scaled_x'] = data.groupby('name')['x'].transform(
    lambda s: MinMaxScaler().fit_transform(s.values.reshape(-1, 1)).flatten()
)
运行结果

处理后的DataFrame输出如下:

x   name  scaled_x
0  1     jo       0.0
1  2  ellen       0.0
2  3     jo       0.5
3  4  ellen       1.0
4  5     jo       1.0

完全符合分组独立缩放的预期:jo分组的x值[1,3,5]缩放后对应[0,0.5,1],ellen分组的x值[2,4]缩放后对应[0,1]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:57:05