首页 > 解决方案 > python - 模糊匹配,循环遍历一个数据集,在参考集中找到对应的项目

问题描述

我正在尝试在 python 中学习和实现模糊匹配。我有两个数据集,我将它们作为数据帧加载到熊猫中。集 1 是参考集。集二是包含与参考名称匹配的数据的集。

我遍历 set_1 项以搜索参考中的相应条目,但出现错误。我需要一些帮助来解决这个错误。
我是否试图以一种好的方式构造算法?

我的尝试:

import pandas as pd
import fuzzywuzzy as fuzzy
from difflib import SequenceMatcher

set_1 = pd.read_csv("C:/Folder/file_1.csv")
set_2 = pd.read_csv("C:/Folder/file_2.csv")

query = set_1['name']
choices = set_2['name2']

for query in query:
    match = fuzzy.extractOne(query,choises=choises,scorer=scorer,score_cutoff=cutoff)

我收到以下错误:

AttributeError: module 'fuzzywuzzy' has no attribute 'extractOne'

标签: pythonfuzzy-comparisonfuzzywuzzy

解决方案


如果您在 github 上查看包的用法extractOne,您会注意到这是一个定义在 中的函数fuzzywuzzy.process,因此您需要像这样导入该子模块:

import pandas as pd
from fuzzywuzzy import process  # <-- note the difference
from difflib import SequenceMatcher

set_1 = pd.read_csv("C:/Folder/file_1.csv")
set_2 = pd.read_csv("C:/Folder/file_2.csv")

query = set_1['name']
choices = set_2['name2']

for query in query:
    #       vvvvvvv  note the difference
    match = process.extractOne(query,choises=choises,scorer=scorer,score_cutoff=cutoff)

推荐阅读