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

如何遍历pandas dataframe删除names列中已出现过的重复姓名

解决思路

维护一个全局集合存储已经出现过的姓名,逐行过滤names列的内容即可,不需要手动遍历整个DataFrame。

完整可运行代码

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'names': ['Jones, Tom, Eddy', 'Nick, Tim, Bob', 'Jones, Eddy, Luke', 'Timmy, Jones, Sam'],
    'score': [119, 222, 221, 112]
})

seen = set()
def filter_name(name_str):
    global seen
    # 拆分姓名并去除多余空格
    name_list = [n.strip() for n in name_str.split(',')]
    # 筛选从未出现过的姓名
    new_names = [n for n in name_list if n not in seen]
    # 将本次新出现的姓名加入已出现集合,供后续行过滤用
    seen.update(new_names)
    # 拼接回字符串格式
    return ', '.join(new_names)

df['WhatIWant'] = df['names'].apply(filter_name)
print(df)

输出结果

names  score       WhatIWant
0   Jones, Tom, Eddy    119  Jones, Tom, Eddy
1     Nick, Tim, Bob    222    Nick, Tim, Bob
2  Jones, Eddy, Luke    221             Luke
3  Timmy, Jones, Sam    112      Timmy, Sam

如果你的数据里存在空值,在拆分姓名前加个非空判断即可兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:54:02