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

如何基于公共索引拼接pandas列文本值并对重复内容去重?

pandas 按索引列聚合拼接去重实现方案

首先给出完整可运行代码:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'A': ['n1', 'n2', 'n3', 'n1', 'n3', 'n4', 'n2'],
    'B': ['joe,jack', 'kelly,john', 'adam,sam', 'jack,frank', 'rita', 'steve, buck', 'john, kelly, peter']
})

# 核心处理逻辑
result = (
    # 将B列字符串按逗号拆分,同时自动清除逗号前后的空白字符
    df.assign(B=df['B'].str.split(r'\s*,\s*'))
    # 按A列分组
    .groupby('A')
    # 聚合:展开分组内所有名称、去重后用逗号拼接
    .agg(B=lambda ser: ','.join(pd.Series(ser.sum()).drop_duplicates()))
    .reset_index()
)

# 打印输出结果
print(result)

运行后输出结果和要求的完全一致:

A                B
0  n1  joe,jack,frank
1  n2  kelly,john,peter
2  n3    adam,sam,rita
3  n4       steve,buck

关键步骤说明

  • 拆分B列时使用正则\s*,\s*作为分隔符,能兼容字段里逗号前后带空格的情况,避免kelly和 kelly被判定为不同值
  • 分组后用ser.sum()将当前分组内所有拆分后的列表拼接为一个总列表,转成Series后调用drop_duplicates()完成去重,最后用逗号拼接成字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:54:03