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

Pandas DataFrame合并重复行并按唯一ID汇总去重关联字段的方法

解决方案

核心是在groupby聚合时对Constituency Code列先做去重再拼接,不用逐行遍历,完整实现代码如下:

import pandas as pd

# 假设原始数据已读入变量df
result = df.groupby(
    # 因为Unique_ID和Name一一对应,同时作为分组键避免额外处理Name列
    ['Unique_ID', 'Name'], 
    as_index=False
)['Constituency Code'].agg(
    # 对每个分组的编码值先去重,再用逗号+空格拼接
    lambda x: ', '.join(x.unique())
)

如果你之前使用groupby+agg未得到预期结果,通常是遗漏了unique()去重步骤,直接拼接会把重复的取值也保留到结果中。
如果需要拼接后的编码按固定顺序排列,可在unique()后加sorted():

lambda x: ', '.join(sorted(x.unique()))

完整测试验证代码

你可以用以下代码直接运行验证效果:

import pandas as pd
# 构造和你示例一致的原始数据
data = {
    "Unique_ID": [404, 404, 404, 659, 1025, 1025],
    "Name": ["Mark", "Mark", "Mark", "Julio", "Jasmine", "Jasmine"],
    "Constituency Code": ["Teacher", "Staff", "Staff", "Student", "Staff", "Student"]
}
df = pd.DataFrame(data)

# 执行聚合
result = df.groupby(['Unique_ID', 'Name'], as_index=False)['Constituency Code'].agg(
    lambda x: ', '.join(x.unique())
)

# 打印结果
print(result)

运行后输出和你预期的结果完全一致。

内容的提问来源于stack exchange,提问作者Syed Jacob Jilany

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:24:03