python - 通过地址匹配连接两个表
问题描述
我想通过地址的近似匹配来合并两个表。一张表有 10000 个地址,另一张表有 33000 个地址。
然后,为第一个表中的每个地址提取“属性 ID”。我该怎么做?
我用了
import difflib
add['Property Address'] = add['Property Address'].map(lambda x: difflib.get_close_matches(x, address['Address']))
但是,这给了我一个错误。另外,代码需要几个小时才能运行。有什么提高效率的方法吗?
解决方案
由于没有代码,这更像是一个算法问题:
我会将地址分解为数字、街道、城市、邮编、州。修剪所有值,设置为大写或小写。然后创建一个例程,根据 Levenshtein 距离为每个匹配和接近匹配创建一个加权值。权重是介于 0 和 1 之间的调整参数,但所有权重的总和应为 1。返回权重(匹配概率并让您的程序使用列表理解或 itterrow 复制生成的几个字段。表格不是那么大,所以优化不应该是一个问题。你也可以使用字典来做到这一点 - 请参阅David Beasley 的演讲。如果你搜索这个网站,会有很多例子。
推荐阅读
- elasticsearch - 弹性搜索中多个字段的单词搜索
- c# - 如何在 IDictionary 中制作动态值
- android - 不支持 Android 11(R) 的 NDK 构建
- php - 如果在 WooCommerce 中满足条件,则尝试隐藏添加费用文本
- javascript - 使输入字段能够多次填写
- python - 如何使用 selenium python 登录谷歌账户
- r - 在前后观察变异虚拟变量
- angular - ng-select 在移动设备上具有更好的渲染效果
- java - 如何在原生 android 中嵌入多个统一模块?
- android - 尽管数据库中有值,但调试器在 Android Studio 中显示空值