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

Pandas分组聚合时能否在agg中对单列同时实现求和、除法、舍入多步操作

实现方案

可以直接将除法、舍入逻辑合并到agg语句中一次性完成,无需后续逐行处理列,以下是两种适用场景的实现方式:

单/少量列自定义处理

直接在agg方法中为对应列指定包含计算逻辑的聚合函数即可:

import pandas as pd
df1 = pd.DataFrame([['a',1,100],['b',2,300],['c',3,400]],columns = ['col1','col2','col3'])
# 合并所有逻辑后的聚合语句
summary_df = df1.groupby('col1').agg(
    col2 = ('col2', 'sum'),
    col3 = ('col3', lambda x: round(x.sum() / 1000, 2))
).reset_index()

多列批量同规则处理

如果有多个列都需要执行「求和后除以1000保留2位小数」的操作,可通过字典批量生成聚合规则,避免重复编码:

# 按处理规则对列分组,可根据实际需求增减列名
sum_raw_cols = ['col2'] # 仅需求和的列
sum_process_cols = ['col3'] # 需求和后做除法、舍入的列
# 批量生成聚合配置
agg_config = {}
for col in sum_raw_cols:
    agg_config[col] = 'sum'
for col in sum_process_cols:
    # 加col=col避免lambda闭包迟绑定问题
    agg_config[col] = lambda x, col=col: round(x.sum() / 1000, 2)
# 执行聚合
summary_df = df1.groupby('col1').agg(agg_config).reset_index()

提示:如果不同列的除法系数、保留位数不同,可以把规则存为字典,循环时读取对应参数即可适配更多场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:45:03