在pandas数据帧中模糊匹配两个字符串的最快方法

时间:2017-08-16 03:20:08

标签: python pandas jupyter-notebook fuzzywuzzy entityresolver

我有两个带名单的数据框

df1[name]   -> number of rows 3000

df2[name]   -> number of rows 64000

我使用模糊的wuzzy来使用以下代码从df2获得df1条目的最佳匹配:

from fuzzywuzzy import fuzz
from fuzzywuzzy import process

matches = [process.extract(x, df1, limit=1) for x in df2]

但这需要永远完成。有没有更快的方法在pandas中进行字符串的模糊匹配?

2 个答案:

答案 0 :(得分:2)

我可以在您的代码中看到的一个改进是使用生成器,因此您可以使用圆括号代替方括号。它会多次增加速度。

matches = (process.extract(x, df1, limit=1) for x in df2)

答案 1 :(得分:0)

您可以使用python的多线程程序包来加快速度。 Pandas默认不利用多核。