python - 为相似文本找到最佳匹配并仅保留唯一值
问题描述
我有一个我试图清理的项目名称列表,但它们包含具有轻微不匹配的重复项。我想找到他们最近的匹配并用这个匹配替换所有匹配项。
我正在使用 Python 和 Pandas 并导入了一个文件,该文件有一列嵌入了项目名称。我做了一些清理并删除了额外的字符来提取项目名称。但有些名称出现了轻微的不匹配。我 difflib 找到最接近的匹配,但它返回两个值,最好的匹配是它本身。
Project Name
552 Hilton International
553 Hilton International A
key = df2.iloc[552:553]['Project Name'].tolist()
key = key[0]
difflib.get_close_matches(key, df2['Project Name'].tolist())
预期结果:
Project Name
552 Hilton International
553 Hilton International
解决方案
推荐阅读
- maven - 多个依赖项中的Maven相同依赖项
- java - 如何使用具有和关系的 2 个条件查询 MongoDB
- ramda.js - Ramda:嵌套循环中的参数
- java - 有没有一种简单的方法可以从 Java 中的模型对象生成 REST API?
- sql-server - 在一个查询中计算同一张表上的多个左连接
- c++ - 将函数标记为 const 的非候选函数
- apache-spark - spark execution - 在驱动程序和执行程序中访问文件内容的单一方法
- go - 从 Go 中的 if 语句中打破的干净方法
- npm - `npm publish` 和 `yarn publish` 有什么不同?
- swift - 为什么我无法快速从登录页面移动?