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

如何用Pandas按被提名者分组合并行并拼接提名者与评论至新列?

解决方法

核心思路

先将提名者姓名与提名评论拼接成「提名者: 评论」的格式,再按**被提名者(Who)**分组,把同一被提名者的所有拼接内容合并到单个单元格中。

修正后的代码

import pandas as pd

# 读取原始CSV文件
df = pd.read_csv('Colleague Award 2023(1-296).csv')

# 保留需要的核心字段:提名者、被提名者、评论内容
df_clean = df[['Name', 'Who', 'Why']]

# 生成"提名者: 评论"格式的组合字段
df_clean['Combined_Comment'] = df_clean['Name'] + ': ' + df_clean['Why']

# 按被提名者分组,用<br>拼接所有评论(适配Word邮件合并的换行需求)
result = df_clean.groupby('Who', as_index=False).agg(
    Why=('Combined_Comment', '<br>'.join)
)

# 保存整理后的CSV文件
result.to_csv('Colleage Award Collated.csv', index=False)

代码说明

  1. 筛选关键字段:直接提取Name/Who/Why三列,比删除无关列更简洁直观。
  2. 拼接评论内容:创建Combined_Comment列,将提名者和评论按要求格式组合。
  3. 正确分组聚合:
    • 按Who(被提名者)分组——这是你原有代码的核心错误(之前误按Name分组,得到的是提名者的评论集合)。
    • 使用<br>拼接评论,导入Word邮件合并时,单元格内会自动换行显示,和你示例中的格式完全匹配;如果需要纯文本换行,可将<br>替换为'\n'。
  4. 匹配输出列名:聚合时直接将合并后的字段命名为Why,和你需要的输出列名一致。

最终输出格式

生成的CSV会完全符合你的需求:

WhoWhy
Joe BloggsJane Doe: Joe is super helpful
Gary Public: Joe always makes good coffee
Jane DoeJoe Bloggs: Jane is a friendly face in the morning
Gary Public: Jane makes my day better!
Jimmy PersonJane Doe: Jimmy helps us out with our IT issues!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 08:54:53