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

如何使用pandas分组后对不同列执行不同聚合操作

实现方法

首先先确保你的date字段已经转换为Pandas日期类型,避免按字符串比较日期出现错误:

import pandas as pd

# 转换日期字段格式
df['date'] = pd.to_datetime(df['date'])

核心分组聚合代码

使用Pandas的命名聚合语法,一次完成分组后的多字段不同规则聚合:

res = df.groupby('transaction', as_index=False).agg(
    date = ('date', 'max'), # 取每个分组的最晚日期
    cash = ('cash', 'sum')  # 对每个分组的cash字段求和
)

如果需要把输出的日期格式调整为年/月/日的格式,可以额外添加一行代码:

res['date'] = res['date'].dt.strftime('%Y/%m/%d')

低版本Pandas兼容方案

如果你的Pandas版本低于0.25,不支持命名聚合语法,可以用字典传参的方式实现相同效果:

res = df.groupby('transaction', as_index=False).agg({
    'date': 'max',
    'cash': 'sum'
})

运行后得到的结果完全符合预期,transaction为2的分组对应cash求和值为25,date为最晚的2020/1/5。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:39:01