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

如何在pandas中按name列重复值将age列替换为对应分组最小值

实现代码

首先导入pandas并构造示例数据:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'name': ['ram', 'syam', 'jodu', 'ram', 'jodu', 'shyam'],
    'age': [25, 12, 15, 23, 20, 18],
    'year': [97, 95, 96, 98, 99, 10]
})

核心逻辑使用groupby + transform实现,一行代码即可完成需求:

# 按name分组,将age替换为对应分组的最小值
df['age'] = df.groupby('name')['age'].transform('min')

逻辑说明

transform方法会将分组后的聚合结果(这里是min求最小值)广播回原数据对应的每一行,不会改变原DataFrame的行数,完美匹配保留所有原始行、仅替换age列值的需求。

注意事项

示例结果中shyam的age被替换为12,属于原始数据里syam和shyam拼写不一致导致的分组差异,如果实际业务场景中存在同名不同拼写的情况,需要先对name列做标准化处理(比如统一拼写格式、去除多余空格/特殊字符等)后再执行分组操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:06:04