如何检查仅包含布尔列的 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”列的最后一行,也许这是值得注意的。
截至本答案发布之日,我发现以下片段最适合极地:
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