python - Pandas 选择至少一列中具有特定值的行

标签 python pandas dataframe

让我们看一下这个示例数据框:

df = pd.DataFrame({'ID':[1,2,3],'Col1':[True,False,False],'Col2':[False,False,False], 'Col3':[True,False,True]})

   ID   Col1   Col2   Col3
0   1   True  False   True
1   2  False  False  False
2   3  False  False   True

我想选择 df 中至少有一个 True 的行。我当然可以执行以下操作:

df[df["Col1"] | df["Col2"] | df["Col3"]]

但是我的真实数据框有很多列,并且我不知道它们的名字。请问我该怎么办?

预期输出:

   ID   Col1   Col2  Col3
0   1   True  False  True
2   3  False  False  True

最佳答案

您可以使用.select_dtypes和带有.loc的 bool 过滤

df.loc[df.select_dtypes('bool').sum(axis=1).ge(1)]


   ID   Col1   Col2  Col3
0   1   True  False  True
2   3  False  False  True

关于python - Pandas 选择至少一列中具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70020936/

相关文章:

python - 使用 ctypes 改变整数数组

python-3.x - 确定 Pandas 数组中的唯一用法

python - 将函数逐元素应用于两个 DataFrame

python - 输出一列字数大于 3 的所有行

python - 将 Dataframe 分割成更小的 DatafFames

python selenium - 单击按钮并获取 page_source

python - 将自纪元以来的时间戳转换为 datetime.datetime

如果找不到,Python 删除

python - 如何找到两个变量之间的相关性但跨越不同的时间线('lagged correlation')

python - 为什么 pandas read_csv 转换器的性能要慢得多并且是非矢量化的?