为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凤凰求蛊 2023-09-26 16:37:21
我试图通过 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 并不引用同一实体。
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

Pandas提供了一种非常简单的方法来实现pandas.DataFrame.drop_duplicates。

给定以下文件(data.csv)存储在当前工作目录中。

name,age,salary

John Doe,25,50000

Jayne Doe,20,80000

Tim Smith,40,100000

John Doe,25,50000

Louise Jones,25,50000


以下脚本可用于删除重复记录,将处理后的数据写入当前工作目录 ( processed_data.csv) 中的 csv 文件。


import pandas as pd


df = pd.read_csv("data.csv")

df = df.drop_duplicates()

df.to_csv("processed_data.csv", index=False)

此示例中的结果输出如下所示:


name,age,salary

John Doe,25,50000

Jayne Doe,20,80000

Tim Smith,40,100000

Louise Jones,25,50000


pandas.DataFrame.drop_duplicates还允许从特定列中删除重复属性(而不仅仅是整行的重复属性),列名称是使用参数指定的subset


例如


import pandas as pd


df = pd.read_csv("data.csv")

df = df.drop_duplicates(subset=["age"])

df.to_csv("processed_data.csv", index=False)

将从列中删除所有重复值age,仅保留包含后续记录字段中重复值的第一条记录age。


在本例中,输出将是:


name,age,salary

John Doe,25,50000

Jayne Doe,20,80000

Tim Smith,40,100000


查看完整回答
反对 回复 2023-09-26
?
噜噜哒

TA贡献1784条经验 获得超7个赞

一些重复的内容仍然存在并且没有删除。我认为这种方法适用于完全相同的副本;如果是这样的话,那这不是我要找的。我想应用记录链接来识别引用同一实体的记录,然后可以将其删除。

查看完整回答
反对 回复 2023-09-26
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信