You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Polars:筛选任意列包含缺失值的所有行

在Polars中筛选任意列含缺失值的行

对应pandas中df.loc[df.isnull().any(axis=1), :]的功能,在Polars里可以通过两种简洁的方式筛选出任意列存在缺失值的行:

核心实现代码

# 推荐写法:利用Polars的横向聚合函数
df_filtered = df.filter(pl.any_horizontal(pl.all().is_null()))

# 等价写法:贴近pandas的思路逻辑
df_filtered = df.filter(df.select(pl.all().is_null()).any(axis=1))

完整可复现示例

import polars as pl

# 输入数据
df = pl.DataFrame({
    "a": [1, 2, None, 4, 5],
    "b": [1.0, 2.0, 3.0, None, 5.0],
    "c": ["a", "b", None, "d", None],
})

# 执行筛选
df_filtered = df.filter(pl.any_horizontal(pl.all().is_null()))

print(df_filtered)

输出结果

shape: (3, 3)
┌──────┬──────┬──────┐
│ a    ┆ b    ┆ c    │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ f64  ┆ str  │
╞══════╪══════╪══════╡
│ null ┆ 3.0  ┆ null │
│ 4    ┆ null ┆ d    │
│ 5    ┆ 5.0  ┆ null │
└──────┴──────┴──────┘

逻辑说明

  • pl.all().is_null():对DataFrame的每一列元素逐个判断是否为缺失值,生成一个布尔型的中间DataFrame
  • pl.any_horizontal(...):对每一行做横向聚合,只要该行有任意一个缺失值(即布尔值为True),就保留该行

内容的提问来源于stack exchange,提问作者sofile9680

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:38:10