You need to enable JavaScript to run this app. Python Pandas按列唯一值分组求另一列最小值并计算差值的实现方法
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas按列唯一值分组求另一列最小值并计算差值的实现方法

最优实现方案

核心使用groupby配合transform方法完成,属于原生向量化操作,计算效率远高于循环、apply类实现:

import pandas as pd

# 原始DataFrame
df = pd.DataFrame({'Person': ['Alex', 'Alex', 'Alex', 'Eva', 'Eva', 'Eva'],
                   'Time': [30, 40, 60, 35, 55, 57]})

# 新增Difference列
df['Difference'] = df['Time'] - df.groupby('Person')['Time'].transform('min')

运行后得到的df和预期结果完全一致。

逻辑说明

  • df.groupby('Person')['Time']:按Person字段分组,提取每个分组的Time列
  • transform('min'):对每个分组计算Time最小值,并且返回和原始DataFrame行数完全一致的序列,每个位置的值对应当前行所属人员的最低Time值
  • 直接用原始Time列减去上述最小值序列,即可得到每行的差值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 14:24:00