如何将DataFrame中分组的Value列替换为组内最小值?
按分组替换列值为组内最小值
可以用 pandas 的 groupby 结合 transform 方法快速实现需求,具体步骤如下:
- 导入 pandas 并构造示例数据:
import pandas as pd df = pd.DataFrame({ 'Group': ['A', 'A', 'A', 'B', 'B', 'B'], 'Value': [1, 4, 5, 10, 7, 15] })
- 核心处理代码:
# 按Group分组后,将每组的Value列替换为该组的最小值 df['Value'] = df.groupby('Group')['Value'].transform('min')
- 处理后的结果:
Group Value 0 A 1 1 A 1 2 A 1 3 B 7 4 B 7 5 B 7
原理说明
groupby('Group')['Value'].min()会计算出每个分组的最小值,得到一个包含两个元素的 Series(A组为1,B组为7)。transform('min')会把这个最小值广播到对应分组的每一行,返回一个和原 DataFrame 行数一致的 Series,因此可以直接赋值给原Value列完成替换。
内容的提问来源于stack exchange,提问作者ImNotSureAboutStats
相关产品推荐
相关产品推荐

