处理缺失值——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]))

运行结果为



全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务