我有一个名为“df_combo”的pandas数据框,其中包含“worker_id”、“url_entrance”、“company_name”列。我正在尝试生成一个输出列,它会告诉我 "url_entrance" 列中的 URL 是否包含 "company_name" 列中的任何单词。即使像 fuzzywuzzy 这样的势均力敌的匹配也可以。
例如,如果 URL 为“www.grandhotelseattle.com”且“company_name”为“Hotel Prestige Seattle”,则模糊率可能为 70-80。
我尝试过以下脚本: >>>fuzz.ratio(df_combo['url_entrance'],df_combo['company_name']) 但它只返回 1 个数字,即整列的总体模糊率。我希望每一行都有模糊比率,并将这些比率存储在新列中。
最佳答案
感谢大家的意见。我已经解决了我的问题! “agg3l”提供的链接很有帮助。我看到的“TypeError”是因为“url_entrance”或“company_name”在某些行中有一些 float 类型。我使用以下脚本将两列转换为字符串,重新运行 fuzz.ratio 脚本并使其正常工作!
block 引用> block 引用>df_combo['url_entrance']=df_combo['url_entrance'].astype(str) df_combo['company_name']=df_combo['company_name'].astype(str)
关于python - 两列之间的模糊匹配(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40143675/