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

如何基于ID列groupby合并多列多行数据并生成指定格式列表

问题解决方案

原有代码错误原因

  • 选取多列的语法不符合pandas规范,选择多列需要传入[列1, 列2, 列3]形式的列表,不能连续写多个[]做链式索引
  • 原有逻辑只支持拼接单个列的所有值,无法先完成单行多列拼接、再按分组拼接多行的需求

正确实现代码

基础实现版:

import pandas as pd

# 先将每行的三个字段转为字符串后拼接为单个逗号分隔字符串
df['tmp'] = df[['Sample_id', 'Sample_name', 'Sample_number']].astype(str).agg(','.join, axis=1)
# 按Id分组,将同组的所有行用换行符拼接,生成Sample_details列
result = df.groupby('Id')['tmp'].agg('\n'.join).reset_index(name='Sample_details')

去空格优化版:

如果原始字段存在前后多余空格,可以用以下版本处理:

import pandas as pd

# 拼接时自动去除每个字段的前后空格
df['tmp'] = df[['Sample_id', 'Sample_name', 'Sample_number']].astype(str).apply(lambda x: ','.join(i.strip() for i in x), axis=1)
result = df.groupby('Id')['tmp'].agg('\n'.join).reset_index(name='Sample_details')

效果说明

生成的result数据框中,Sample_details列的同组内容会按单行多列逗号分隔、多行之间换行的格式存储,和你给出的期望输出格式完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:24:03