如何在熊猫数据框中删除唯一行?

toto_tico

我遇到了一个看似简单的问题:在熊猫数据框中删除唯一的行。基本上与的相反drop_duplicates()

假设这是我的数据:

    A       B   C  
0   foo     0   A
1   foo     1   A
2   foo     1   B
3   bar     1   A

当A和B唯一时,我想删除行,即我只保留行1和2。

我尝试了以下方法:

# Load Dataframe
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})

uniques = df[['A', 'B']].drop_duplicates()
duplicates = df[~df.index.isin(uniques.index)]

但是我只能得到第2行,因为唯一性是0、1和3!

耶斯列尔

选择所有重复行的解决方案:

您可以使用duplicated子集和参数keep=False来选择所有重复项:

df = df[df.duplicated(subset=['A','B'], keep=False)]
print (df)
     A  B  C
1  foo  1  A
2  foo  1  B

解决方案transform

df = df[df.groupby(['A', 'B'])['A'].transform('size') > 1]
print (df)
     A  B  C
1  foo  1  A
2  foo  1  B

对所有唯一行进行了一些修改的解决方案:

#invert boolean mask by ~
df = df[~df.duplicated(subset=['A','B'], keep=False)]
print (df)
     A  B  C
0  foo  0  A
3  bar  1  A

df = df[df.groupby(['A', 'B'])['A'].transform('size') == 1]
print (df)
     A  B  C
0  foo  0  A
3  bar  1  A

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除熊猫数据框中的唯一行

如何从熊猫数据框中删除一行?

如何删除熊猫数据框中的每一行?

从熊猫数据框中随机选择唯一行

如何删除R中两个数据框中的唯一行?

删除一行熊猫数据框中的重复值

如何从熊猫数据框中的列中的每一行中删除重复值

如何在Python中为数据框的每一行创建唯一的XML

如果在熊猫列中只有一个单词,如何在熊猫数据框中删除一行

如何在熊猫数据框的顶部添加一行?

如何计算数据框中的唯一行?

熊猫数据框,如何在一行中设置多个列值?

如何在整个熊猫数据框中添加或减去一行?

如何根据 R 中数据框中的某些列和行信息删除唯一行

如何在R中的数据框中将唯一行值更改为另一组唯一行值?

将列值分配给熊猫数据框中的唯一行

从熊猫数据框中的唯一行值创建新列

计算数据框熊猫中唯一行的数量

如何在从R数据框中删除重复项时保留上一行

如何在每个组的多索引数据框中删除第一行?

如何在熊猫数据框中删除所有重复出现的事件或获取唯一值?

在计数列中添加第二列后如何在数据框中获取唯一行

删除熊猫数据框中每一行的最后一个词

如何在熊猫数据框中从当前行中减去前一行并将其应用于每一行;不使用循环?

如何在不迭代每一行的情况下访问熊猫数据框中的值

删除熊猫数据框中每一行的标点符号

根据熊猫数据框中的条件删除每个组的最后一行

使用df.iterrows()删除熊猫数据框中的一行

如何在仅某些列等于上一行时删除下一个熊猫数据框行