Python,Pandas和numpy中的NaN

42 篇文章 0 订阅
26 篇文章 0 订阅

在处理数据时NAN值是非常常见的,但是NaN值你真的了解吗?
下面让楓尘君带大家了解一下这个神奇的NAN

在csv表格中长这样:
在这里插入图片描述
在python里展示为这样:
在这里插入图片描述我们创建这个值时是这样:

import numpy as np
np.nan

但是想判断是否是np.nan还真是有点难度:

a=np.nan
print(a==np.nan)
结果是False

print(a.equal(np.nan))
报错:AttributeError: 'float' object has no attribute 'equal'

print(a=="NaN")
False

print(a==float('NaN'))
False

print(str(a)=='NaN')
False

查看类型:

print(type(a))
结果:<class ‘numpy.float64’>

在参考链接1之后,终于判断成功

from math import isnan
print(isnan(a))
结果为True

举一反三,所以我发现,一下判断也成立:


print(str(a)=='nan')
True

print(np.math.isnan(a))
True

print(np.isnan(a))
True

当楓尘君兴致勃勃,手舞足蹈的使用np.math.isnan(a)进行判断时,竟然:
在这里插入图片描述又试了
np.isnan(a)
,还是报错:
在这里插入图片描述

发现只有,number类型(int float)才能用np.math.isnan和math.isnan。
wtf,我数据80%都是String,这怎么判断呢,正当我一筹莫展时,我发现了链接2

可以用pandas库来检验:

import pandas as pd
pd.isnull(np.nan)
#此时一样输出为True
#同样的pd.notnull()用来判断不为nan值

验证一下:
在这里插入图片描述完美通过,别说这NaN还真是挺让人头痛,希望看了这篇博客的人能避免此类小错误,楓尘君可是折腾了宝贵的两个小时呢!!!

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值