如何保留数据框中所有在所有列中具有相同值的行?

时间:2019-02-12 22:19:43

标签: python pandas

我想找到所有列中具有相同值的所有行,或更具体地说,删除所有具有差异的行。我当时想我要遍历每一列,并检查是否占多数,然后删除其他行。我觉得这种方法不是利用数据框的最佳方法。

我正在检查以前的帖子,有人问类似的问题,但是他们想要相反的结果,所以我将使用他们的示例:

输入:

index  A  B  C  D  E  F ....
 0     1  2  3  4  2  2
 1     1  2  3  4  2  2
 2     5  5  5  5  5  5 
 3     7  7  6  7  7  7

所需的输出:

index  A  B  C  D  E  F ....
 0     1  2  3  4  2  2
 1     1  2  3  4  2  2

这里可以有很多列。

编辑:我提供的示例是错误的。对不起,我累了。我已经更新了示例。既然我已经输入了问题,我想我基本上只是在问如何找到相同的行。如果有多组相同的行,我也想知道。

2 个答案:

答案 0 :(得分:2)

使用nunique

yourdf=df[df.nunique(1)==1]
yourdf
       A  B  C  D  E  F
index                  
1      2  2  2  2  2  2
2      5  5  5  5  5  5

更新

df[df.duplicated(keep=False)]
Out[11]: 
       A  B  C  D  E  F
index                  
0      1  2  3  4  2  2
1      1  2  3  4  2  2

答案 1 :(得分:0)

这可能不是一个非常有效的解决方案,但是如果您的DataFrame足够小,则应该可以:

df[df.std(axis=1)==0]

(我假设所有值都是数字)