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

从Access数据库导入的空值为何显示为NoneType却不等于None?

Access导入pandas后空值判断问题解答

为什么判断不匹配?

从Access导入空值到pandas时,不会直接存成Python原生的None。即使你用type()看到显示NoneType,实际大概率是numpy或pandas的缺失值对象,和原生None分属不同类型体系,所以用== None判断会返回False。

空单元格实际是什么值?

通常是这两种:

  • numpy.nan:最常见的情况,尤其是数值型或object型列,虽然有时显示类似None,但本质是numpy的缺失值标识
  • pandas.NA:pandas 1.0+引入的统一缺失值类型,兼容不同数据类型的空值判断

你可以直接打印这个值确认:

print(df.loc['3000', 'email'])

如果输出是nan,那就是numpy.nan;如果是<NA>,就是pandas.NA。

正确的判断方式

别用== None或== np.nan(np.nan和自身比较也会返回False),用专门的缺失值判断函数:

  • 通用方案(推荐):用pandas的pd.isna()或pd.isnull()
    pd.isna(df.loc['3000', 'email'])
    
  • 针对numpy.nan的方案:用np.isnan()(只适用于数值类型空值)
    import numpy as np
    np.isnan(df.loc['3000', 'email'])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:15:41