Polars DataFrame逐行检测空值的更优实现方法咨询
高效标记Polars DataFrame每行是否含空值的方案
直接使用Polars原生向量化操作即可实现,无需转置,代码简洁且效率远高于转置方案:
- 核心实现代码
import polars as pl # 示例DataFrame df = pl.DataFrame({ "col1": [1, None, 5], "col2": ["foo", None, "bar"], "col3": [3.14, 2.71, None] }) # 新增布尔列标记每行是否存在任意null值 df = df.with_columns(has_any_null=pl.all().is_null().any())
- 关键说明
pl.all():选中当前DataFrame的所有列.is_null():将每列元素转换为布尔值,null对应True,非null对应False.any():按行聚合,只要该行有一个True就返回True,否则返回False- 该操作是Polars原生的向量化计算,完全避免了转置带来的高开销
- 排除指定列的场景
如果不需要检查某些列(比如已有的标识列),可以用exclude方法筛选目标列:
# 排除col1,只检查col2和col3是否有null df = df.with_columns(has_null_in_target=pl.all().exclude("col1").is_null().any())
内容的提问来源于stack exchange,提问作者Backwater1296
相关产品推荐
相关产品推荐

