Python 按多列分组以查找重复行
我有一个Python 按多列分组以查找重复行,python,pandas,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和val2进行分组,并仅获得具有相同val1和val2组合多次出现的行的类似数据帧 最终df: id val1 val2 1 1.1 2.2 4 1.
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和val2
进行分组,并仅获得具有相同val1和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
您需要使用参数subset
指定列,以便使用keep=False
检查掩码和筛选的所有重复项:
详情:
print (df.duplicated(subset=['val1','val2'], keep=False))
0 True
1 True
2 False
3 True
4 True
5 True
dtype: bool
我怎样才能找到这些?我需要对ID[0,1,4]进行分组,因为它们具有相同的数据。@VenkataGogu-使用
df.groupby('val1')
@jezrael您的意思是groupby
复制之前还是之后?你能把这个添加到你的答案中吗?@KLaz-你需要df.groupby(['val1','val2'])['id'].agg(list).重置索引(name='new')
?
print (df.duplicated(subset=['val1','val2'], keep=False))
0 True
1 True
2 False
3 True
4 True
5 True
dtype: bool