用于检测重复记录的工具或Python库

我试图通过 python 在单个 csv 文件中查找重复项,因此通过搜索,我找到了 dedupe.io,这是一个使用 python 和机器学习算法来检测重复记录的平台,但它不是一个免费工具。但是,我不想使用应指定比较列的传统方法。我想找到一种高精度检测重复的方法。因此,是否有任何工具或Python库可以查找文本数据集的重复项?


这是一个可以澄清这一点的示例:


  Title, Authors, Venue, Year

  1- Clustering validity checking methods: part II, Maria Halkidi, Yannis Batistakis, Michalis Vazirgiannis, ACM SIGMOD Record, 2002

  2- Cluster validity methods: part I, Yannis Batistakis, Michalis Vazirgiannis, ACM SIGMOD Record, 2002

  3- Book reviews, Karl Aberer, ACM SIGMOD Record, 2003

  4- Book review column, Karl Aberer, ACM SIGMOD Record, 2003

  5- Book reviews, Leonid Libkin, ACM SIGMOD Record, 2003

因此,我们可以确定记录 1 和 2 不重复,即使它们包含几乎相似的数据,但“标题”列略有不同。记录 3 和 4 重复,但记录 5 并不引用同一实体。


凤凰求蛊
浏览 103回答 2
2回答

慕的地10843

Pandas提供了一种非常简单的方法来实现pandas.DataFrame.drop_duplicates。给定以下文件(data.csv)存储在当前工作目录中。name,age,salaryJohn Doe,25,50000Jayne Doe,20,80000Tim Smith,40,100000John Doe,25,50000Louise Jones,25,50000以下脚本可用于删除重复记录,将处理后的数据写入当前工作目录 ( processed_data.csv) 中的 csv 文件。import pandas as pddf = pd.read_csv("data.csv")df = df.drop_duplicates()df.to_csv("processed_data.csv", index=False)此示例中的结果输出如下所示:name,age,salaryJohn Doe,25,50000Jayne Doe,20,80000Tim Smith,40,100000Louise Jones,25,50000pandas.DataFrame.drop_duplicates还允许从特定列中删除重复属性(而不仅仅是整行的重复属性),列名称是使用参数指定的subset。例如import pandas as pddf = pd.read_csv("data.csv")df = df.drop_duplicates(subset=["age"])df.to_csv("processed_data.csv", index=False)将从列中删除所有重复值age,仅保留包含后续记录字段中重复值的第一条记录age。在本例中,输出将是:name,age,salaryJohn Doe,25,50000Jayne Doe,20,80000Tim Smith,40,100000

噜噜哒

一些重复的内容仍然存在并且没有删除。我认为这种方法适用于完全相同的副本;如果是这样的话,那这不是我要找的。我想应用记录链接来识别引用同一实体的记录,然后可以将其删除。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python