检查DataFrame的所有值是否为True

问题描述 投票:0回答:1

如何检查仅包含布尔列的 Polars DataFrame 的所有值是否为 True?
示例

df

df = pl.DataFrame({"a": [True, True, None],
                   "b": [True, True, True],
    })

我的问题的原因是有时我想检查

df
的所有值是否满足条件,如下所示:

df = pl.DataFrame({"a": [1, 2, None],
                   "b": [4, 5, 6],
}).select(pl.all() >= 1)

顺便说一句,我没想到

.select(pl.all() >= 1)
null
(无)保留在“a”列的最后一行,也许这是值得注意的。

python dataframe conditional-statements python-polars boolean-logic
1个回答
0
投票

截至本答案发布之日,我发现以下片段最适合极地:

df.fill_null(False).min_horizontal().min()  

如果

null
中不存在
df
值,则可以省略
.fill_null(False)

归功于 roman,

min_horizotnal().min()
的逻辑首先由他在 any 上的类似问题上的
answer
中描述。

上面的

df
示例:

>>> df.fill_null(False).min_horizontal().min()
False
>>> df = pl.DataFrame({"a": [True, True, True],
...                    "b": [True, True, True],
...     })
...
... df.fill_null(False).min_horizontal().min()
True
© www.soinside.com 2019 - 2024. All rights reserved.