如何以更惯用的方式检查Polars DataFrame中是否存在空值?
检查Polars DataFrame是否存在任意空值的惯用写法
当然有更简洁、符合Polars惯用风格的写法,分两种场景:
1. 推荐:使用Polars内置方法(≥0.19.0版本)
Polars在0.19.0及以上版本中新增了has_any_nulls()方法,专门用于检查DataFrame中是否存在任意空值,直接返回布尔值,完全替代你原有的代码:
df.has_any_nulls()
这是最符合Polars设计理念的写法,代码简洁且可读性拉满。
2. 兼容旧版本的简化写法
如果你使用的Polars版本低于0.19.0,也可以简化原代码,避免冗余的索引操作:
- 方式一:先统计每列空值数,再判断是否有列空值数大于0
df.null_count().select(pl.any_horizontal(pl.all() > 0)).item()
- 方式二:直接检查每个元素是否为空,再横向判断是否存在任意空值
df.is_null().any_horizontal(pl.all()).item()
对比你的原代码df.select(pl.any_horizontal(pl.all().null_count()))[0, 0],上述写法要么利用了内置方法,要么通过.item()替代[0, 0]来提取单个值,更符合Polars的惯用操作习惯。
内容的提问来源于stack exchange,提问作者1''
相关产品推荐
相关产品推荐

