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

如何在Python中使用类似vlookup功能查询DataFrame中的文本数据

Python实现企业名称匹配(类VLOOKUP映射功能)

你需要实现的是基于不全企业名称,在全量数据集中检索匹配对应企业的功能,需求示例如下:
企业名称匹配示例

下面分两种常见匹配场景给出实现方案:

1. 精确子串匹配

适用于你手里的不全名称是对应完整企业名称的连续准确子串,没有错别字、语序错乱问题,直接用pandas即可实现:
首先安装依赖:pip install pandas openpyxl
实现代码:

import pandas as pd

# 1. 读取数据:替换为你自己的文件路径和列名
df_partial = pd.read_excel("待匹配企业列表.xlsx", usecols=["不全企业名称"])
df_full = pd.read_excel("全量企业数据集.xlsx", usecols=["完整企业名称"])

# 2. 匹配判断:返回是否存在,以及所有匹配到的完整企业名称
def match_enterprise(partial_name):
    matches = df_full["完整企业名称"][df_full["完整企业名称"].str.contains(partial_name, na=False)]
    if matches.empty:
        return "否", ""
    else:
        return "是", "、".join(matches.tolist())

df_partial[["是否存在于数据集", "匹配到的完整名称"]] = df_partial["不全企业名称"].apply(
    lambda x: pd.Series(match_enterprise(x))
)

# 3. 导出结果
df_partial.to_excel("匹配结果.xlsx", index=False)

2. 模糊相似度匹配

适用于不全名称有错别字、缺字漏字、语序调整的情况,基于文本相似度算法匹配,需要安装fuzzywuzzy库:
安装依赖:pip install fuzzywuzzy python-Levenshtein pandas openpyxl
实现代码:

import pandas as pd
from fuzzywuzzy import fuzz

# 可自定义相似度阈值,范围0-100,分数越高匹配精度越高
SIMILARITY_THRESHOLD = 80

# 1. 读取数据
df_partial = pd.read_excel("待匹配企业列表.xlsx", usecols=["不全企业名称"])
df_full = pd.read_excel("全量企业数据集.xlsx", usecols=["完整企业名称"])
full_name_list = df_full["完整企业名称"].tolist()

# 2. 模糊匹配
def fuzzy_match_enterprise(partial_name):
    match_res = []
    for full_name in full_name_list:
        score = fuzz.partial_ratio(partial_name, full_name)
        if score >= SIMILARITY_THRESHOLD:
            match_res.append(f"{full_name}(相似度{score})")
    if not match_res:
        return "否", ""
    else:
        return "是", "、".join(match_res)

df_partial[["是否存在于数据集", "匹配到的完整名称"]] = df_partial["不全企业名称"].apply(
    lambda x: pd.Series(fuzzy_match_enterprise(x))
)

# 3. 导出结果
df_partial.to_excel("模糊匹配结果.xlsx", index=False)

注意事项

  • 全量数据集较大(超过10万条)时,可以先对全量企业名称做分词索引优化匹配速度
  • 可根据实际匹配结果调整相似度阈值,平衡匹配准确率和召回率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:36:02