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才被判断为空值

扫描二维码关注公众号,回复: 2422450 查看本文章

要是判断某一列中有空值存在,可以使用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处理。

猜你喜欢

转载自blog.csdn.net/github_38980969/article/details/80937027