Python:Find方法匹配两个数据帧中相似但不完全相同的名称

Python:Find方法匹配两个数据帧中相似但不完全相同的名称,python,pandas,nlp,sequence,Python,Pandas,Nlp,Sequence,我有两个数据帧,一个包含客户打开的服务请求,另一个包含客户的订单。 我想在客户名称上合并这两个数据框,但问题是名称不相同,因为它们来自两个不同的来源。 只是一个虚构的例子:数据框1可以有“Facebook,Inc.”,数据框2可以是“Facebook社交媒体” 我尝试使用SequenceMatcher(来自difflib import SequenceMatcher),并在数据帧1中以每个客户的最高比率获取结果,但精度不够高 我很高兴听到遇到同样问题的人的想法 谢谢。您可以使用fuzzyfuzz

我有两个数据帧,一个包含客户打开的服务请求,另一个包含客户的订单。 我想在客户名称上合并这两个数据框,但问题是名称不相同,因为它们来自两个不同的来源。 只是一个虚构的例子:数据框1可以有“Facebook,Inc.”,数据框2可以是“Facebook社交媒体”

我尝试使用SequenceMatcher(来自difflib import SequenceMatcher),并在数据帧1中以每个客户的最高比率获取结果,但精度不够高

我很高兴听到遇到同样问题的人的想法


谢谢。

您可以使用
fuzzyfuzzy
库或来自
editdistance
软件包的优化Levenstein距离。优化的Levenstein距离只使用最后两行,而不是传统的二维矩阵。要计算相似性,请使用下一个公式:

ratio = 1 - levenstein(a, b) / max(len(a), len(b))
此外,您可以使用Damerau Levenstein修改。它允许计算字符换位,而不是删除/插入操作


试试levenshtein距离。看,谢谢!这是非常有用的,我仍然在努力解决这个问题,因为当字符串变得太不同时,我会得到一些不正确的匹配,但这可能没有一个自动化的解决方案。