首页 > 解决方案 > 使用fuzzywuzzy匹配熊猫数据框中的字符串

问题描述

我有两个数据框:Instructor_Info 和 Operator_Info

Instructor_Info 包含一个名为 Names 和 OperatorName 的列,而 Operator_Info 也有一个名为 Names 的列。Instructor_Info 中的所有名称在 Operator Info 中都有一个关联名称。我想使用 fuzz.token_sort_ratio() 通过将 Instructor_Info 中的每个名称与 Operator_Info 中的每个名称进行比较并将得分最高的字符串存储在 OperatorName 列中来查找这些匹配项。

这是我到目前为止所拥有的:

for index, row in Instructor_Info.iterrows():
    match = 0
    for index1,row1 in Operator_Info.iterrows():
        if fuzz.token_sort_ratio(row['Names'],row1['Names']) > match:
            row['OperatorName'] = row1['Names']

这段代码运行速度非常慢,并且得到了几个错误的匹配(我可以手动修复这些,所以速度是主要问题)。如果有人有任何更快的想法,将不胜感激。提前致谢。

标签: pythonpandasfuzzywuzzy

解决方案


推荐阅读