在数据处理的过程中,我们经常会遇到数据有缺失值的情况,今天我们就来介绍一下在python中如何用Pandas处理数据中的缺失值。
一、什么是缺失值
对数据而言,缺失值分为两种,一种是Pandas中的空值,另一种是自定义的缺失值。
1. Pandas中的空值有三个:np.nan (Not a Number) 、 None 和 pd.NaT(时间格式的空值,注意大小写不能错),这三个值可以用Pandas中的函数isnull(),notnull(),isna()进行判断。
isnull()和notnull()的结果互为取反,isnull()和isna()的结果一样。对于这三个函数,只需要用其中一个就可以识别出数据中是否有空值。如果数据量较大,再配合numpy中的any()和all()函数就行了。
需要特别注意两点:
- 如果某一列数据全是空值且包含pd.NaT,np.nan和None会自动转换成pd.NaT。
- 空值(np.nan、None、pd.NaT)既不是空字符串"",也不是空格" "。
从Python解释器来看,np.nan的类型是float,None的类型是NoneType,两者在Pandas中都显示为NaN,pd.NaT的类型是Pandas中的NaTType,显示为NaT。而不管是空字符串还是空格,其数据类型都是字符串,Pandas判断的结果不是空值。
2.