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

Python中如何在pandas DataFrame新增列匹配含公共三字母组的名称

实现方案

优先采用「预构建三字母映射表 + 自定义函数批量查询」的方案,比逐行嵌套循环对比的效率高至少一个数量级,数据量越大优势越明显。

步骤说明

  1. 先全局遍历一次所有数据,构建三字母组 -> 对应名称列表的映射字典,每个三字母组关联所有包含它的名称
  2. 对每一行,直接查询该行所有三字母组对应的名称列表,合并去重后排除当前行自身的名称,就是目标列需要填充的内容

实现代码

import pandas as pd
from collections import defaultdict

# 构建三字母组映射字典
tri_char_map = defaultdict(list)
for _, row in df.iterrows():
    name = row['Unnamed: 0']
    for tri_char in row['Characters Split']:
        tri_char_map[tri_char].append(name)

# 定义获取公共三字母名称的自定义函数
def fetch_related_names(row):
    current_name = row['Unnamed: 0']
    related_names = []
    for tri_char in row['Characters Split']:
        related_names.extend(tri_char_map[tri_char])
    # 去重并排除自身名称
    unique_related = list(set(related_names))
    if current_name in unique_related:
        unique_related.remove(current_name)
    return unique_related

# 批量填充目标列
df['Names with common 3-letters'] = df.apply(fetch_related_names, axis=1)

效果验证

以第一行数据为例,拆分三字母组为FRO、KDU、WJU,其中FRO关联的名称有FROKDUWJU、FROIEUSKIKIR、ORIUWJZSRFRO,最终第一行目标列填充结果为['FROIEUSKIKIR', 'ORIUWJZSRFRO'],符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:15:03