[英]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.