文章目录
一、Task01:缺失数据
二、理解点
理解点1:np.isnan()、pd.isna()和pd.isnull()的区别
-
numpy中的
isnan
对应的是NaN
值,代表“不是数字”,数值类型为float
,数组中显示为nan,能参与运算,但结果显示为NaN -
而python自带的
None
,为NoneType
类型代表空类型,不能参与运算
import numpy as np
import pandas as pd
np.nan + 9 #结果为:nan
a = np.array([1,2,3,np.nan])
np.isnan(a)
# a = np.array([1,2,3,None])
# np.isnan(a) #报类型错误警告 None并不代表NaN值无法处理
np.nan is None #结果为:False 表示np.nan不是一个空对象
np.nan == np.nan #结果为False
np.isnan(np.nan) #结果为True
# a = np.array(['1','2','3',np.nan])
# np.isnan(a) #类型错误警告,字符类型无法运算
- pandas中将两者都处理为np.nan
df1 = DataFrame(data=np.random.randint(0,20,size=(5,5)),columns=list("abcde"))
df1["b"][1] = None
df1["c"].iloc[2] = None
df1.iloc[2].loc["d"] = np.nan # 显式地去设置nan不太好
df1
- 可以看到两者都处理成NaN值
- 同时发现下面的情况
同时官方文档中关于pandas.Data