我想找到所有列中具有相同值的所有行,或更具体地说,删除所有具有差异的行。我当时想我要遍历每一列,并检查是否占多数,然后删除其他行。我觉得这种方法不是利用数据框的最佳方法。
我正在检查以前的帖子,有人问类似的问题,但是他们想要相反的结果,所以我将使用他们的示例:
输入:
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
这里可以有很多列。
编辑:我提供的示例是错误的。对不起,我累了。我已经更新了示例。既然我已经输入了问题,我想我基本上只是在问如何找到相同的行。如果有多组相同的行,我也想知道。
答案 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]
(我假设所有值都是数字)