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

Pandas按指定列分组后对不同列使用不同分隔符合并列值的实现方法

你原有代码两次单独对单列进行分组聚合,后一次计算结果会直接覆盖前一次的new_df变量,因此只能得到一列的拼接结果。可以通过groupby搭配agg()方法,同时为不同列指定不同的聚合规则实现需求:

cols = ['col1', 'col2']
# pandas 0.25及以上版本支持的命名聚合写法,可直接指定输出列名
new_df = df.groupby(cols, as_index=False).agg(
    col3 = ('col3', lambda x: '; '.join(x)),
    col4 = ('col4', lambda x: '\n'.join(x))
)

如果使用的是旧版本pandas,也可以用字典传参的写法实现:

cols = ['col1', 'col2']
new_df = df.groupby(cols).agg({
    'col3': lambda x: '; '.join(x),
    'col4': lambda x: '\n'.join(x)
}).reset_index()

代码说明:

  • as_index=False参数可以让分组键保持为普通列,无需后续额外调用reset_index()还原索引
  • agg()方法支持为不同列分别自定义聚合逻辑,两列的拼接操作会在一次分组计算中完成,不需要多次分组覆盖结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:39:04