对DataFrame两列分别执行sum和min聚合操作的高效实现方法
Pandas DataFrame多字段分组聚合实现方案
核心实现代码
你可以直接用Pandas内置的groupby+agg方法完成需求,这是当前效率最高的实现方式,底层为向量化运算,无需手动遍历分组:
import pandas as pd # 假设你的原始DataFrame变量名为df res_df = df.groupby( by=["name", "item"], # 按name和item联合分组 as_index=False # 不把分组键转为索引,保持原有列结构 ).agg( price=("price", "sum"), # price列取分组内的求和结果 timestamp=("timestamp", "min") # timestamp列取分组内的最小值 )
效果验证
针对你给出的样例数据,运行上述代码后输出的res_df和预期结果完全一致:
| name | item | price | timestamp |
|---|---|---|---|
| Elliot | a | 40 | 12312 |
| Sara | b | 20 | 45654 |
| Tom | a | 5 | 43423 |
效率优化提示
如果你的数据量超过千万行,可以在groupby参数中加sort=False关闭分组自动排序,能额外提升10%~30%的执行效率。
内容的提问来源于stack exchange,提问作者kevin811
相关产品推荐
相关产品推荐

