首页 > 解决方案 > 如何根据重复的列值选择 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 列相似性来识别重复项。

标签: pythonpandasdataframe

解决方案


首先通过 获取所有重复项Col1Col2然后通过以下方式删除所有列的重复项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

推荐阅读