我也有这样的df
| 色谱柱A|B栏|色谱柱C|D栏|
| --------------|--------------|--------------|--------------|
| 1|真的|假的|假的|
| 二|假的|真的|假的|
| 三|假的|假的|真的|
| 四|真的|假的|真的|
| 五|假的|真的|真的|
| 六|假的|假的|假的|
| 七|假的|真的|假的|
我想检查我的df,以了解是否有多个True值的行,因为我希望每行都不超过一个True值的列。All False是好的,1 True是好的,如果在同一行中有两个以上的True将是一个问题。每一行都是一个特定的事件。我认为列不应该重叠,但我不确定,所以我必须检查,因为在未来我需要计数“True”,如果一行有超过True,相同的事件将被计数两次。
所以我期望有这样的输出
| 色谱柱A|B栏|色谱柱C|D栏|
| --------------|--------------|--------------|--------------|
| 四|真的|假的|真的|
| 五|假的|真的|真的|
2条答案
按热度按时间vsnjm48y1#
在Python中,布尔值实际上可以被视为整数并对其进行操作。
True == 1
和False == 0
。既然我们知道这个事实,你可以取每行数据的
sum
,并检查它是否是>1
。如果是这种情况,那么您知道有超过1个True值。使用此方法时,重要的是要确保仅使用具有
boolean
值的列。不要意外地在示例中包含数字列(如Column A
)。1mrurvl12#
您可以
drop
不需要的列,sum
布尔列来计算True
,并使用布尔索引来选择多个行(gt(1)
):或者,使用
select_dtypes
自动选择所有布尔列:输出: