python空值的一些问题

#转自微信公众号 每日一Python

在数据处理的过程中,经常会遇到数据为空的情况,然后踩到很多坑浪费很久的时间,今天总结一下Python中空值的情况,以防后续再掉进坑里。

Python中空值一般有四种情况,None," ",False和NaN:

前三种类型中 打印 None == None ," " == " " ,False == False都能返回判断True,但是np.NaN == np.NaN 却返回为False,如图:


要创建一个空值可以用np.NaN,而且type(np.NaN)是float类型,而type(None)是NoneType类型,type(" ")是字符串类型,而在pandas中的数据类型例如Series和DataFrame中如果数组中除了空值之外全部是数值类型则None会转化正NaN


在Series或者DataFrame整体判断是否为空时,用isnull(),返回一个布尔型的矩阵;而且只有None 和NaN才被判断为空值

要是判断某一列中有空值存在,可以使用isnull().any():

当判断单个值是否为空时,要用np.isnan(),但是np.isnan()只能用于数值型,NaN是Not a Number的缩写;其他类型可以用type(x).__name__ == 'float'来判断是否为空值,也可以利用np.NaN != np.NaN的特性来判断(即自身不等于自身时,该值为空值),这些方法只适用于空值为NaN类型的,当空值类型为None时,可以使用type(x) .__name__ == 'NoneType'来判断


可以用data[data.isnull().values==True]来筛选含有空值的行,但是如果某行有多个值是空值,则会重复次数出现,所以利用data[data.isnull().values==True].drop_duplicates()来去重:

为了将空值统一格式处理,可以在读取数据是限制一下,read_csv(na_values='NULL')将空值统一成NaN处理。
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值