我正在尝试对包含大量地址的两个数据集进行一些模糊匹配。
我正在遍历df中的地址列表,并从另一个地址中找到“最匹配”:
for index,row in df.iterrows():
test_address = df.Full_Address[row]
first_comp = fuzz.token_set_ratio(df3.Full_Address,`test_address)
将行输出返回给我df的完整地址,但是我想不出一种方法来从df3返回随后的“匹配”地址。
任何人都可以指点一下吗?
df〜18k行 df3〜2.5M行 显然存在局限性:
我尝试使用np.meshgrid创建值列表并为每个值对获取比率,然后选择大于阈值的行。 也尝试过这种方法,但是数据集的大小需要一定的时间
matched_names =[]
for row1 in df.index:
name1 = df.get_value(row1,"Full_Address")
for row2 in df3.index:
name2= df3.get_value(row2,"Full_Address")
matched_token=fuzz.token_set_ratio(name1,name2)
if matched_token> 80:
matched_names.append([name1,name2,matched_token])
print(matched_names)