前言

使用pandas的时候经常需要检测空值,但每次感觉都判断不全或者感觉很困惑,因此这里做个简单的总结

None

None是Python的特殊类型,NoneType对象,它只有一个值None.它不支持任何运算也没有任何内建方法。None和任何其他的数据类型比较永远返回False。None有自己的数据类型NoneType。你可以将None复制给任何变量,但是你不能创建其他NoneType对象。

数据类型

>>>type(None)
<class 'NoneType'>

Nan

python 中Nan是not a number(非数)它即不是无穷大, 也不是无穷小,无穷大减无穷大会导致NaN,无穷大乘以0或无穷小或除以无穷大会导致NaN,有NaN参与的运算, 其结果也一定是NaN,NaN != NaN

数据类型

>>>type(np.nan)
<class 'float'>

Null

空字符串

>>>type('')
<class ''str'>

如何检测

个人感觉最好用的是pd.isnull(或pd.isna)

isnull和isna区别
isnull是isna的别名,既然一样为什么要搞两个名字?Pandas dataframe是根据R的dataframe设计的,而R语言中na和null是两种不同的数据类型,因此有isna和isnull,python就保留了这两个方法,isnull是isna的别名而已;另一方面,pandas是建立在numpy之上的,numpy中又没有na或null值,而是用np.nan来表示缺失值,所以pd.isnull不仅可以检测np.nan也可以检测None

注意
pd.isnull是不可以检测字符串的,比如’’,‘nan’,‘None’。这个也很好理解,字符串有字符串的判断方式。

比较全面的判断这些与空值有关的方法

i == '' or pd.isnull(i) or pd.isnull(float('nan')) (或者 i =='nan') or i =='None'

煮个栗子

list = ['nan', '', 'None', None, np.nan]
for i in list:if i == '' or pd.isnull(i) or pd.isnull(float('nan')) or i == 'None':print(i)

结果

nanNone
None
nan

Pandas如何检测None和Nan相关推荐

  1. pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例

    pandas dataframe缺失值(np.nan)处理:识别缺失情况.删除.0值填补.均值填补.中位数填补.加缺失标签.插值填充详解及实例 isnull().natna().isna().fill ...

  2. python字符串小数转化整数_python – Pandas将字符串列和NaN(浮点数)转换为整数,保持NaN...

    参见英文答案 > Convert Pandas column containing NaNs to dtype `int`                                     ...

  3. pandas过滤某列含有nan 的行

    pandas中 过滤某列中含有Nan的行 import pandas as pd import numpy as np"""过滤某列中含有Nan的行:return:&qu ...

  4. pandas水平concat后出现NaN值

    pandas水平拼接 result = pd.concat([df1, df2, df3,...], axis=1) 问题原因: 如果排除本身每个df自身有NaN值外,出现这种情况就是各df的索引顺序 ...

  5. Python Pandas DataFrame 删除缺失值 None Nan drop dropna 替换缺失值 fillna 重复值删除 duplicate 数值替换 replace apply

    一.获取缺失值. 二.剔除缺失值. 三.缺失值补全. 四.重复值剔除(按照行和列). 五.数值转换. 原始数据展示.数据下载链接 https://download.csdn.net/download/ ...

  6. python读取csv内容变为nan_Python pandas read_csv 中NULL当成NaN类型问题

    1、使用read_csv读取数据null显示NaNimport pandas as pd from io import StringIO data = u'strings,numbers\nfoo,1 ...

  7. python给空列表赋值_Python Pandas:如果数据是NaN,则更改为0,否则在数据框中更改为1...

    你可以使用 where和 fillna,条件是 isnull: df[['age','url']] = df[['age','url']].where(df[['age','url']].isnull ...

  8. python pandas 判断是否为空“nan”

    使用: a = None pd.isna(a)

  9. pandas 用均值填充缺失值NaN —— fillna 方法解析

最新文章

  1. 很安逸的离线API文档查询工具Dash和Zeal
  2. 轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?
  3. oc引导win方法_[OC更新]机械革命10代标压稳定版更新
  4. php和python区别-PHP与Python语言有哪些区别之处?选择哪一个好?
  5. 使用javap分析Java的字符串操作
  6. div+css中常见的问题
  7. linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效...
  8. flask mysql环境配置_Flask教程4:数据库
  9. 如何.gitignore文件夹中的所有文件/文件夹,但不是文件夹本身? [重复]
  10. D3DXVec3TransformCoord 函数
  11. 一个程序员和一个黑客群的故事
  12. FPS综述:植物次生代谢物与微生物组互作研究进展
  13. [OOAD]面向对象分析与设计之人机交互界面设计学习总结
  14. java大鱼吃小鱼_大鱼吃小鱼Java课程设计
  15. I.MX6U 0411简介
  16. 将电脑多余空间分给其他盘
  17. 初中数学分几个模块_初中数学分成三大模块
  18. hammer.js教程2
  19. JUnit4 单元测试框架
  20. 仿抖音--将图片转化成对应的字符图片

热门文章

  1. 装饰器补充、三元表达式、生成式、匿名函数
  2. 组件化开发-002-Cocoapods远程私有库使用(Private Repo)
  3. C#设计模式之一单例模式(Singleton Pattern)【创建型】
  4. Keepalived实战(3)
  5. codeforces 14D
  6. 【学习笔记】WAMP
  7. 946. Validate Stack Sequences验证栈序列
  8. vue-cli+gitlab代码管理时,vue项目配置文件设置
  9. Arduboy 游戏机制作参考教程
  10. 让员工一再上当的5种社会工程骗局