从FuzzyWuzzy返回多个列token_set_ratio

时间:2019-02-08 01:07:02

标签: python-3.x fuzzywuzzy

我正在尝试对包含大量地址的两个数据集进行一些模糊匹配。

我正在遍历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)

0 个答案:

没有答案