我有两个带名单的数据框
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中进行字符串的模糊匹配?
答案 0 :(得分:2)
我可以在您的代码中看到的一个改进是使用生成器,因此您可以使用圆括号代替方括号。它会多次增加速度。
matches = (process.extract(x, df1, limit=1) for x in df2)
答案 1 :(得分:0)
您可以使用python的多线程程序包来加快速度。 Pandas默认不利用多核。