当前位置:主页 » Python缺失值处理

Python缺失值处理

在许多业务数据分析场景中,数据不一定十分完整,总是存在部分缺失值,因此,数据清洗阶段,对缺失值进行处理就显得尤为重要。本文介绍一些缺失值处理的示例,主要用到的库有:pandas、numpy 、sklearn。

需要准备的:

python

详细操作方法和步骤:

导入需要的库。 import pandas as pd import numpy as np from sklearn.preprocessing import Imputer
生成缺失数据。 data=pd.DataFrame({'name':['Kite','Lily','Hanmei','Danny','Bob'],'English':[92,78,np.nan,23,82],'Math':[69,87,91,np.nan,90],'Chinese':[np.nan,78,96,np.nan,75]}) print(data)
查看缺失值。 data.isnull()#查看所有缺失值 data.isnull().any()#获取含有缺失值的列 data.isnull().all()#获取全部为NA的列
删除缺失值。这种处理方式丢失的信息比较多。 data2=data.dropna() print(data2) 可以看到,删除后,仅剩两行数据。
利用sklearn替换缺失值。当缺失值为数值型数据时,可用利用均值来替换。 data.index=data['name']#将第一列作为索引data=data.drop(['name'],axis=1)#删除第一列 nan_model=Imputer(missing_values='NaN',strategy='mean',axis=0)#按照行均值替换对应缺失值。 nan_result=nan_model.fit_transform(data) print(nan_result)
利用pandas替换缺失值。 data.fillna(0) #缺失值用0替换(考试中缺考记0分) data.fillna(method='pad')#用前面的值替换 data.fillna(method='backfill')#用后面的值替换 可以看到,当第一行有缺失值时,利用向前替换是会失败的。

需要注意的:

请看图片示例:

Python缺失值处理

Python缺失值处理

Python缺失值处理

Python缺失值处理

Python缺失值处理

Python缺失值处理

Python缺失值处理

Python缺失值处理

Python缺失值处理