处理缺失值——24行代码
查看缺失值
DataFrame对象查看列中的缺失数量,方法是使用info()函数
具体操作如下
import pandas as pd import numpy as np df=pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan],[2,4,9]]) df
上述代码创建了一个DataFrame对象,如下图所示
使用info()函数进行缺失值得查看,代码如下
df.info()
返回的信息如下图所示
在Series对象中查看缺失值使用isnull()函数
值得注意的一点是,Series对象中没有info()这个属性
先创建一个Series对象,例如
data = pd.Series([2,4,None,5,np.nan,6,8]) data
创建的对象为
使用data.isnull()函数对所有的元素进行判定,是不是空值,是空值就返回True,还有notnull()函数,返回的信息则相反,例如
data.isnull()
还可以使用data[data.isnull()]将空值的位置返回,data[data.notnull()]将非空值返回还有位置也返回,例如,懒得敲代码,直接上图查看。
删除缺失值
使用dropna()函数可以将DataFrame对象中的含有缺失值的行或者列进行删除,
还有个方法就是某一行全部为空值的时候才进行删除,
数据填充
Series对象中将数据进行填充,使用fillna()函数
代码如下,三种填充方式,第一个是以0元素进行填充,第二个是用前一个元素进行填充,第三个是用后一个元素进行填充
data = pd.Series([2,4,None,5,np.nan,6,8]) data.fillna(0),data.fillna(method='ffill'),data.fillna(method='bfill')
Dataframe对象进行填充,使用的方法和Series对象的填充方式一样,按照前一个后一个填充的时候,指的是按照这一列中的上一行或者下一行的元素进行填充,还有一种
方式就是按照这一行的下一列或者前一列进行填充,方法是
也可以将每一列的平均值填入,代码如下
for i in df.columns: np.nanmean(df[i]) #对这一列除去空值,取平均数 df.fillna(np.nanmean(df[i]))
运行结果为