栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pandas如何检测None和Nan

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pandas如何检测None和Nan

前言

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

None

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

数据类型

>>>type(None)

Nan

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

数据类型

>>>type(np.nan)

Null

空字符串

>>>type('')

如何检测

个人感觉最好用的是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)

结果

nan

None
None
nan
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号