熊猫基于2列丢弃重复的值

时间:2020-09-11 15:13:12

标签: python pandas dataframe duplicates

如何以特定方式删除重复项:

Index B C
1     2 1
2     2 0
3     3 1
4     3 1
5     4 0
6     4 0 
7     4 0
8     5 1
9     5 0
10    5 1

所需的输出:

Index B C
3     3 1
5     4 0

因此在B上删除重复项,但如果C在所有行上都相同,则保留一个样本/记录。

例如,对于索引3/4,B = 3,但是由于对于两个索引,C = 1,所以我不会全部销毁它们

但是例如对于索引8/9/10,B = 5,因为C = 1或0,它会被破坏。

1 个答案:

答案 0 :(得分:1)

尝试将transformnuniquedrop_duplicates结合使用:

df[df.groupby('B')['C'].transform('nunique') == 1].drop_duplicates(subset='B')

输出:

       B  C
Index      
3      3  1
5      4  0