python - 如何根据重复的列值选择 pandas 行?
问题描述
如果我有一个看起来像这样的 pandas df:
+--------+-----------+--------
|Col1 | Col2 |Col3 |
|--------+-----------+----------+
|75 | 84 | A |
|84 | 68 | B |
|75 | 84 | C |
|75 | 84 | A |
+--------+-----------+----------+
我希望输出是
+--------+-----------+--------
|Col1 | Col2 |Col3 |
|--------+-----------+----------+
|75 | 84 | A |
|75 | 84 | C |
即 Col1 和 Col 2 的值相同但 Col 3 不同的地方。我努力了
df[df.duplicated(['ID'], keep=False)]
但这并不能仅根据 2 列相似性来识别重复项。
解决方案
首先通过 获取所有重复项Col1
,Col2
然后通过以下方式删除所有列的重复项DataFrame.drop_duplicates
:
df = df[df.duplicated(['Col1', 'Col2'], keep=False)].drop_duplicates()
print (df)
Col1 Col2 Col3
0 75 84 A
2 75 84 C
推荐阅读
- sql - 来自远程服务器和服务器上的相同查询,不同的结果
- rust - 有没有更简洁的方式来格式化 .expect() 消息?
- python - 如何处理列中的unicode值dict
- php - 使用 Angular 和 php 上传文件时面临错误
- c# - 如何从数据库中删除选定的 DataGridView 行?
- c# - 启用两因素身份验证时,基于 Netsuite 令牌的身份验证出现无效登录错误
- c - 究竟是什么打破了 main 中的 while 循环?
- npm - 我无法安装任何 npm 包
- postgresql - 即使有大量数据,Timescaledb 内存消耗仍然非常低
- scala - 如何将火花数据集转换为 scala seq