如何解决模糊 wuzzy 查找匹配项和与匹配项关联的其他列
我有一个数据集,我想在地址上匹配它,然后一旦我有了地址匹配 ID,我还想知道与之关联的相关唯一 ID。
考虑这个例子:
df1 =
Address
123 road
abc lane
1 circle
7th avenue
4 high street
df2=
Address unique id
123 rd ID12345
abc lane ID12346
1 circle ID12347
7th ave ID12348
4 high st ID12349
df3 (result) =
Address match unique id
123 road 123 rd ID12345
abc lane abc lane ID12346
1 circle 1 circle ID12347
7th avenue 7th ave ID12348
4 high street 4 high st ID12349
到目前为止,我已经得到了这个代码:
address_list = df1['Address'].to_list()
address_search = df2['Address'].to_list()
mat1 = []
for i in address_search:
mat1.append(process.extract(i,address_list,limit=2))
df1['matches'] = mat1
我能够找到匹配项并将其附加到数据帧,但我不确定如何搜索与找到的匹配项关联的相关唯一 ID 列/行。
解决方法
-
更新 2。匹配数据框 #2 行中的任何单词。
str.contains
接受正则表达式。 因此,您可以用| (or)
符号替换空格并在一行中查找任何匹配的单词。模式看起来像:
123|road
、7th|avenue
等。请注意这是一个区分大小写的搜索。:df2['Address2']=df1['Address'].apply(lambda x: x if df2['Address'].str.contains(x.replace(' ','|')).any() else np.nan)
输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。