python - Pandas 在组之间删除重复项
问题描述
我有一个数据框,我只想跨组删除重复项。
A B C D
0 1 0 2 Group 1
1 1 1 1 Group 2
2 1 1 1 Group 2
3 1 1 1 Group 2
4 3 8 3 Group 2
5 3 8 3 Group 1
6 2 9 1 Group 2
7 2 9 1 Group 1
8 1 0 2 Group 1
在上面的数据框中,我想要以下输出:
A B C D
0 1 0 2 Group 1
1 1 1 1 Group 2
2 1 1 1 Group 2
3 1 1 1 Group 2
8 1 0 2 Group 1
对于每个跨组匹配(跨组 1 和 2),如果存在配对匹配,则将其删除。因此,删除了索引 4 和 5,以及删除了 6 和 7。如您所见,不会删除组内的重复项(索引 0,8 和 2,3)。
对此的任何帮助都非常感谢。
解决方案
我们可以做的duplicated
df=df[df.duplicated(keep=False)]
A B C D
0 1 0 2 Group1
1 1 1 1 Group2
2 1 1 1 Group2
3 1 1 1 Group2
8 1 0 2 Group1
更新
df=df.groupby(list('ABC')).filter(lambda x : (x.nunique()==1).all())
A B C D
0 1 0 2 Group1
1 1 1 1 Group2
2 1 1 1 Group2
3 1 1 1 Group2
8 1 0 2 Group1
推荐阅读
- android - Google+ 已弃用和 GoogleSignInAccount getPhotoUrl() 返回 null
- python - 有没有办法在 2D numpy 数组中选择一行,并为行中的每一列提供条件?
- database - 什么时候数据一致性不是问题?
- java - 确定具有给定内角的多边形边
- excel - 如何在vba中对行进行分组?
- javascript - 将对象添加到 inlineImages sendEmail 参数
- python - 如何评估/提高来自具有不平衡数据集的神经网络的预测的准确性?
- c++ - c ++ cuda opengl不渲染vbo
- ruby-on-rails - Rails.cache.fetch 返回 nil
- asp.net - IdentityServer4 无法在生产中工作