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

Pandas:基于多条件聚合客户交易数据的解决方案咨询

方案1:使用agg直接多聚合(推荐,改动最小)

你只需要把groupby的参数改成要分组的多字段列表,再用agg方法同时执行求和、计数两个聚合操作即可,写法和你现有代码的逻辑完全兼容:

Combined = data.groupby(["ID", "Year", "Month"])["Amount"].agg(
    Sum="sum",
    Count="count"
).reset_index()

运行后输出的结果会包含ID、Year、Month、Sum(对应分组交易总金额)、Count(对应分组交易笔数)5个字段。

方案2:命名聚合写法(可读性更强)

如果后续你需要对不同字段做不同的聚合规则,推荐用pandas 0.25+支持的命名聚合语法,逻辑更清晰:

Combined = data.groupby(["ID", "Year", "Month"]).agg(
    Sum=("Amount", "sum"),
    Count=("Amount", "count")
).reset_index()

方案3:旧版本pandas兼容写法

如果你用的pandas版本低于0.25不支持命名聚合,可以先聚合再手动重命名列:

Combined = data.groupby(["ID", "Year", "Month"])["Amount"].agg(["sum", "count"]).reset_index()
# 手动重命名列
Combined.columns = ["ID", "Year", "Month", "Sum", "Count"]

如果需要调整分组的排序规则,只要调整groupby参数里的字段顺序即可,比如要按「年份→月份→客户ID」的层级分组,就把参数改成["Year", "Month", "ID"]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:02