我有一个pandas列,里面有上千个公司名称值,一个名称可以有很多变化,但它最终引用的是同一个公司名称。我想用fuzzywuzzy做一些字符串匹配,它最终扫描每个值,并用匹配的字符长度最短的值替换它,但我不知道如何将其放入代码中。
下面是我希望得到的输出示例
company = ['Canopy Growth', 'Canopy Growth Chocolates', 'Canopy growTH', 'Aurora', 'Aurora Drift', 'Aurora Corp', 'Hexo Corp', 'HEXO', 'hexo Inc', 'Pure Sunfarms', 'Pure sunfarms Corp']
clean_company = ['Canopy Growth', 'Canopy Growth', 'Canopy Growth', 'Aurora', 'Aurora', 'Aurora', 'HEXO', 'HEXO', 'HEXO', 'Pure Sunfarms', 'Pure Sunfarms' ]
# create dataframe with company names
df = pd.DataFrame({'company': company, 'clean_company': clean_company})
df
任何帮助都非常感谢!
1条答案
按热度按时间qvk1mo1f1#
创建一个搜索空间,所有的名字…弹出第一个关闭,并检查每一个其他的名字相似使用fuzzywuzzy…任何是simillar足够(高于某个阈值)你可以用这个词分组,然后从搜索空间中删除……重复,直到搜索空间为空……我不认为你可以把它矢量化或任何酷的东西……这可能需要一段时间(取决于你的搜索空间有多大)。。。我想大概是下面这样的