python - 同时基于2列删除python数据集中的重复项

标签 python pandas duplicates

我有一个 pandas 数据框,并希望根据 2 个特定列的任一条目是否重复来删除行,从第一行开始向下进行(保留第一个命中并删除其他重复项)。

例如从:

<表类="s-表"> <头> Group_1 Group_2 分数 <正文> 红色 蓝色 90 红色 橙色 85 红色 紫色 82 绿色 蓝色 79 绿色 黄色 74

并且有一个所有条目都是唯一的输出(同时考虑两列 - 第四行被删除,因为第二列中的“蓝色”已经存在于第一行中):

<表类="s-表"> <头> Group_1 Group_2 得分 <正文> 红色 蓝色 90 绿色 黄色 74

最佳答案

我不知道以 col1 或 col2 方式而不是 AND 删除重复项的任何直接方法,但您可以简单地使用 for 循环在您想要的列上按顺序删除重复项。

for col in ['Group_1', 'Group_2']:
    df.drop_duplicates(subset=col, inplace=True)

for col in df.columns[:2]:
    df.drop_duplicates(subset=col, inplace=True)

它也会自动保留第一次出现,但您可以在方法中指定它: df.drop_duplicates(subset=col, inplace=True, keep='first')

关于python - 同时基于2列删除python数据集中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68583388/

相关文章:

java - 比较并从java中的2个数组中提取相似的字符串,不重复

bash - 将 bash 脚本转换为 Python - 如何处理 heredocs?

python - 如何在 Pyramid 中包含 HTTPNotFound 错误中的链接?

python - 在列中,计算逗号分隔句子中的单词

python - Pandas 系列中的特殊字符串格式

java - 合并两个不重复的列表

mysql - 在 MySQL 中,当没有唯一字段(主键)时,如何编写查询以在插入时跳过重复行?

python - 在 matplotlib basemap 中设置数据限制

python - pip 安装失败,出现 "connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"

python - 使用多维键进行索引 pandas 错误