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

如何判断pandas DataFrame中指定位置的取值是否为NaN?

原因说明

pandas里默认的缺失值是numpy.nan,属于浮点类型,和Python原生的None是完全不同的对象。而且numpy.nan有个特殊的比较规则:它和任何值做==比较的结果都是False,哪怕和它自己比也一样。你可以试下执行print(np.nan == np.nan),输出也是False,所以用== None判断numpy.nan当然返回False。
你之前测试nullV == None返回True,是因为这是Python原生None的比较逻辑,和numpy.nan的规则不通用。

正确判断方式

最稳妥的方式是用pandas内置的pd.isna()(或者别名pd.isnull()),它兼容numpy.nan、Python原生None、pandas专属的pd.NA等所有常见空值类型,不会出现类型适配问题,用法如下:

print(pd.isna(df.loc[39, 'booking']))

如果目标位置是空值就返回True,否则返回False。

也可以用np.isnan()做判断,但这个方法只支持数值类型输入,如果目标列是字符串、日期等非数值类型,调用时会报错,通用性远不如pd.isna(),一般不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:24:05