返回Pandas数据帧行,其中N列以上具有相同的值

时间:2018-04-11 00:00:04

标签: python pandas row subset

假设我有以下数据框df。如何获取值N并仅返回N列具有相同值的行?例如,如果N = 3,它将返回行0,2,3,4。如果N = 4,那么只有第3行。

      'A'   'B'   'C'  'D'   'E'

0      1     1     1    3     5
1      5     4     2    1     2
2      3     4     3    2     3
3      5     5     5    4     5
4      1     2     1    2     1

我找到了像this one这样的答案,这些答案适用于所有值相同的情况,但是当它想要任意数量的列相同时,却无法想到一种干净的方式来适应它

1 个答案:

答案 0 :(得分:1)

我们可以使用value_counts,ge mean> =,您可以将其中的数字3更改为您需要的内容

df[df.apply(pd.value_counts,1).ge(3).any(1)]
Out[257]: 
   'A'  'B'  'C'  'D'  'E'
0    1    1    1    3    5
2    3    4    3    2    3
3    5    5    5    4    5
4    1    2    1    2    1