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

pandas中如何按自定义键合并字符串列的多行数据

Pandas 分组合并字符串列实现方案

你之前调用groupby后结果仍分散为多行,核心原因是没有对分组后的字符串列指定拼接类的聚合规则,仅完成了数据拆分没有做合并计算,正确实现步骤如下:

  1. 构造示例原始数据表
import pandas as pd

# 构建原始示例数据
df = pd.DataFrame({
    'StudentName': ['Adam', 'Mathew', 'Sheldon', 'Albert', 'Angelica', 'Maya', 'Ashley'],
    'Class': ['Class I', 'Class II', 'Class I', 'Class I', 'Class II', 'Class II', 'Class III']
})
  1. 分组聚合核心代码
    通过groupby+agg一次性完成字符串拼接、计数两个聚合逻辑,设置as_index=False避免分组键变为索引导致格式错乱:
result = df.groupby(by='Class', as_index=False).agg(
    # 同组学生姓名用逗号拼接为单个字符串
    Student=('StudentName', lambda x: ', '.join(x)),
    # 统计同组学生数量
    Count_of_Students=('StudentName', 'count')
)
  1. 输出结果说明
    运行代码后得到的结果完全匹配需求:
  • Class I 对应Student值为Adam, Sheldon, Albert,Count_of_Students为3
  • Class II 对应Student值为Mathew, Angelica, Maya,Count_of_Students为3
  • Class III 对应Student值为Ashley,Count_of_Students为1

补充说明

如果同组内存在重复的学生姓名,可以在拼接逻辑中加去重处理,修改拼接规则为lambda x: ', '.join(x.drop_duplicates())即可,避免重复值出现在拼接结果中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:54:18