繁体   English   中英

返回超过N列具有相同值的Pandas数据框行

[英]Return Pandas dataframe rows where more than N columns have the same value

假设我有以下数据框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

我已经找到了类似这样的答案,适用于所有值都相同的情况,但是当它想要任意数量的列都相同时,却想不出一种适用于它的干净方法。

我们可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM