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

Rust Polars中如何实现类似drop_nulls的NaN剔除功能?

解决DataFrame同时剔除含null/NaN行的简便方法

根据你使用的数据分析库,给你对应的简便解决方法:

用Polars的情况

Polars自带的drop_nulls()只处理null,不会识别数值型的NaN,最简单的方式是先把所有NaN转成null,再一次性删除含null的行:

import polars as pl

# 替换所有列的NaN为null,再剔除含null的行
df = df.fill_nan(None).drop_nulls()

不用手动遍历列写过滤条件,两行代码就搞定所有列的处理。

用Pandas的情况

Pandas里null和NaN是统一的缺失值类型,直接用dropna()就能一次性剔除任意列含缺失值的行:

import pandas as pd

# 默认就是剔除任意列含缺失值的行,简写也可以
df = df.dropna(how='any')

甚至可以直接写df.dropna(),效果完全一样。

用PySpark的情况

PySpark会把NaN和null区分开,需要先把所有列的NaN转成null,再删除含null的行:

from pyspark.sql.functions import col, isnan, when

# 批量处理所有列,将NaN替换为null
df = df.select([when(isnan(c), None).otherwise(col(c)).alias(c) for c in df.columns])
# 剔除任意列含null的行
df = df.dropna(how='any')

这段代码会自动遍历所有列,不用手动指定每一列,适合列数多的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:36:21