按多列分组以查找重复的行pandas

时间:2017-10-09 07:31:21

标签: python pandas

我有一个df

id    val1    val2
 1     1.1      2.2
 1     1.1      2.2
 2     2.1      5.5
 3     8.8      6.2
 4     1.1      2.2
 5     8.8      6.2

我希望按val1 and val2进行分组,并且只能使用多次出现相同val1 and val2组合的行来获取类似的数据框。

最终df:

id    val1    val2
 1     1.1      2.2
 4     1.1      2.2
 3     8.8      6.2
 5     8.8      6.2

1 个答案:

答案 0 :(得分:11)

您需要duplicated参数subset来指定列keep=False,以查看所有重复的掩码和过滤boolean indexing

df = df[df.duplicated(subset=['val1','val2'], keep=False)]
print (df)
   id  val1  val2
0   1   1.1   2.2
1   1   1.1   2.2
3   3   8.8   6.2
4   4   1.1   2.2
5   5   8.8   6.2

详情:

print (df.duplicated(subset=['val1','val2'], keep=False))
0     True
1     True
2    False
3     True
4     True
5     True
dtype: bool