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
相关产品推荐
相关产品推荐

