Python 从数据框中删除布尔行
如何快速删除A、B和C都为false的行? 我试过: 删除A、B和C都为false的行 如果这些列的行中的Python 从数据框中删除布尔行,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,如何快速删除A、B和C都为false的行? 我试过: 删除A、B和C都为false的行 如果这些列的行中的sum不等于0,则使用 沿轴1使用all的备选方案。第二个~操作符直接-直接在df之前,将所有False反转为Trueall返回True如果所有列值都是True,则再次使用~将其反转,以索引实际上都是False的行: df3 = df[~(~df[['A', 'B', 'C']]).all(1)] 等待一分钟any df[df[['A','B','C']].any(1)] 谢谢你能解释一
sum
不等于0,则使用
沿轴1使用
all
的备选方案。第二个~
操作符直接-直接在df
之前,将所有False
反转为True
all
返回True
如果所有列值都是True
,则再次使用~
将其反转,以索引实际上都是False
的行:
df3 = df[~(~df[['A', 'B', 'C']]).all(1)]
等待一分钟
any
df[df[['A','B','C']].any(1)]
谢谢你能解释一下吗?我没有完全理解。@asd当您为列
A、B、C
取每行的总和时,如果有任何True
值,它将返回1或更多,因此我检查总和是否不等于零(这意味着一行的所有列都是False
),谢谢。出于好奇,我写的代码怎么了?我误解了一些语法还是?@asd您所做的是False&False&False
(即False
)(假设行中的所有列都是False),然后将其反转(~
)它将始终返回True
,因此对于具有所有False
值的行,它仍然返回True
,因此不会删除它。这是最简单的内置方式。。!!100%同意,我对这件事想得太多了
df3 = df[~(~df[['A', 'B', 'C']]).all(1)]
df[df[['A','B','C']].any(1)]