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

fastest way to do fuzzy matching two strings in pandas data frame

我有两个带有名称列表的数据框

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?

中字符串的模糊匹配有没有更快的方法

您可以使用python的多线程包来加速它。 Pandas 默认情况下不利用多核。

我在您的代码中看到的一项改进是使用生成器,因此您可以使用圆括号代替方括号。速度会提高数倍

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

编辑:还有一个建议,我们可以用multiprocessing库并行操作。