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

如何检查Pandas单元格值是否为NaN?判断遇False问题求解

如何正确检查Pandas单元格值是否为NaN?

嗨,这个问题我太熟了!你遇到的情况其实是NaN本身的特性导致的——NaN(Not a Number)在Python里有个特殊点:它不等于任何值,包括它自己,所以直接用cell_value == np.nan永远会返回False,哪怕这个值确实是NaN。而且你看到type(cell_value)是<class 'float'>也很正常,因为Pandas里的数值型缺失值都会被存为float类型的NaN。

下面给你几种靠谱的检查方法:

  • 用Pandas原生方法(推荐):pd.isna() 或者 pd.isnull()(这两个方法完全等价),它能处理所有数据类型的缺失值,包括数值、字符串、datetime等,兼容性拉满:

    import pandas as pd
    if pd.isna(cell_value):
        print("这个单元格的值是NaN")
    
  • 用Numpy的方法:np.isnan(),适合你这种已经确认是数值类型(float)的场景,但要注意如果单元格是字符串或其他非数值类型,用这个方法会报错:

    import numpy as np
    if np.isnan(cell_value):
        print("这个单元格的值是NaN")
    
  • 针对Series/DataFrame批量检查:如果你要处理整列或整个数据集,可以直接调用Pandas对象的.isna()方法,比如:

    # 检查某列所有单元格是否为NaN
    df['target_column'].isna()
    # 筛选出该列为NaN的所有行
    df[df['target_column'].isna()]
    

内容的提问来源于stack exchange,提问作者Piyush S. Wanare

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:37:50