Python缺失值处理

2022年8月15日 17点热度 0人点赞

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

工具/原料

  • python

方法/步骤

  1. 1

    导入需要的库。

    import pandas as pd

    import numpy as np

    from sklearn.preprocessing import Imputer

  2. 2

    生成缺失数据。

    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)

  3. 3

    查看缺失值。

    data.isnull()#查看所有缺失值

    data.isnull().any()#获取含有缺失值的列

    data.isnull().all()#获取全部为NA的列

  4. 4

    删除缺失值。这种处理方式丢失的信息比较多。

    data2=data.dropna()

    print(data2)

    可以看到,删除后,仅剩两行数据。

  5. 5

    利用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)

  6. 6

    利用pandas替换缺失值。

    data.fillna(0) #缺失值用0替换(考试中缺考记0分)

    data.fillna(method='pad')#用前面的值替换

    data.fillna(method='backfill')#用后面的值替换

    可以看到,当第一行有缺失值时,利用向前替换是会失败的。

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论