kun*_*eep 6 python entityresolver pandas fuzzywuzzy jupyter-notebook
我有两个带有姓名列表的数据框
df1[name] -> number of rows 3000
df2[name] -> number of rows 64000
Run Code Online (Sandbox Code Playgroud)
我使用 fuzzy wuzzy 使用以下代码从 df2 中获取 df1 条目的最佳匹配:
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
matches = [process.extract(x, df1, limit=1) for x in df2]
Run Code Online (Sandbox Code Playgroud)
但这需要很长时间才能完成。有没有更快的方法来对 pandas 中的字符串进行模糊匹配?
我在代码中看到的一项改进是使用生成器,因此您可以使用圆括号代替方括号。它将提高数倍的速度。
matches = (process.extract(x, df1, limit=1) for x in df2)
Run Code Online (Sandbox Code Playgroud)
编辑:还有一个建议,我们可以与库并行操作multiprocessing
。
归档时间: |
|
查看次数: |
5136 次 |
最近记录: |