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

Pandas多行数据合并为单行多列的语法问题

Pandas分组后多列合并为逗号分隔字符串

问题场景

原始数据:

column1 column2 column3
1       a       Y
1       b       Z
2       d       Z
2       c       Y

需要按column1分组,将column2和column3的对应值分别合并为逗号分隔的字符串,期望输出:

column1 column2 column3
1       a, b       Y, Z
2       d, c       Z, Y

解决方案

单列合并的方法可行,但多列合并时需要改用agg方法(而非apply),因为agg会对每一列独立执行合并操作:

  1. 构造示例数据(已有DataFrame可跳过此步骤):
import pandas as pd

df = pd.DataFrame({
    'column1': [1, 1, 2, 2],
    'column2': ['a', 'b', 'd', 'c'],
    'column3': ['Y', 'Z', 'Z', 'Y']
})
  1. 执行分组合并:
result = df.groupby('column1').agg(', '.join).reset_index()
  1. 最终输出:
column1 column2 column3
0        1    a, b    Y, Z
1        2    d, c    Z, Y

原方法无效的原因

当对多列使用groupby(...).apply(', '.join)时,Pandas会将整个分组的DataFrame对象传入join函数,而非逐列处理,导致无法正确生成逗号分隔的字符串。而agg方法会遍历每一列,对列内所有值独立执行', '.join,完全匹配需求。

内容的提问来源于stack exchange,提问作者T-0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:48:23