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

如何在Pandas中按name分组并将value列用\n合并至同一单元格?

Pandas中按name列合并对应value为换行分隔的单元格

要实现当name列值相同时,将对应value列内容用换行符\n合并到同一单元格,同时让重复的name只显示一次,按以下步骤操作:

解决代码

import pandas as pd

data = [
    ['A','x'],
    ['A','y'],
    ['A','z'],
    ['B','m'],
    ['B','n'],
    ['B','o'],
    ['B','p']
]

df = pd.DataFrame(data, columns=['name','value'])

# 按name分组,将对应value用换行符连接
merged_df = df.groupby('name')['value'].agg('\n'.join).reset_index()

# 处理name列:仅保留每组第一个name,其余设为空字符串,模拟预期输出的显示效果
merged_df['name'] = merged_df['name'].mask(merged_df['name'].duplicated(), '')

print(merged_df.to_string(index=False))

运行输出

name value
   A     x
        y
        z
   B     m
        n
        o
        p

说明

  1. groupby('name')['value'].agg('\n'.join):按name分组后,将每组的value值用\n拼接成单个字符串
  2. reset_index():把分组后的索引转为普通列,方便后续处理
  3. mask(merged_df['name'].duplicated(), ''):将重复出现的name替换为空字符串,实现预期的表格显示效果
  4. to_string(index=False):打印时隐藏索引,和预期输出格式一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:29:58