Python数据分析:缺失值处理

作者: 可乐的数据分析之路 | 来源:发表于2020-04-04 15:27 被阅读0次

写在前面

上周我们读取完了数据(Python数据分析实战:获取数据),下面就要对数据进行清洗了,首先是对缺失值的处理。缺失值也就是空值,先找出来再处理。

查看缺失值

可以使用isnull方法来查看空值,得到的结果是布尔值。

# 查看缺失值
df_list.isnull()

结果:


对于小的数据集来说,可以这样看,但对于大的数据集这样查看空值貌似没什么意义,没关系,还有其他方法,可以使用info方法

# 查看空值
df_list.info()

结果:


info方法可以看到字段的数据类型以及每个字段下有多少个非空值,可以看到neighbourhood_group 字段全为空,这和布尔值显示的结果一致。

其实还有一个方法,更简单了:

# 查看空值
df_list.isnull().sum()

对取出来的isnull的布尔值求和,就很明显地看到,id列是没有空值的,name列有一个空值,结果:


也可以对单独的某一列这样查看空值,对name列查看空值

# 对单独一列查看空值
df_list["name"].isnull().sum()

结果为1,说明name列有1个空值:


缺失值的处理

找到缺失值以后如何处理呢?删除或填充。

删除缺失值

用dropna方法,默认是只要一行中有一个缺失值这一行就全都删除

# 删除缺失值
df_list.dropna()

结果就是这个数据集里的数据全被删掉了,因为其中的neighbourhood_group这个字段全为空,按照dropna的尿性,有一个为空就整行删除,就得到了如下结果:


当然也可以给这个方法传入how="all"参数,只有在整行为空的前提下才删除。

# 整行都为空才删除
df_list.dropna(how = "all")

结果是一条都没有删除,因为这个数据集里没有所有字段都为空的记录:



但是有一列数据都为空的字段,把neighbourhood_group这一列删掉,还记得删除列的方法吗

# 删除列
df_list = df_list.drop(columns = "neighbourhood_group")
df_list

结果:



name列也是有一个空值的,找出来看一下

# 定位到name列的空值
df_list[df_list["name"].isnull()]

结果如下,这一行还是删了吧。



删除行用drop方法,刚刚定位出了要删除的那一行,行索引是456

# 删除name列的空值的行
df_list = df_list.drop(index = 456)
df_list

结果可以看到变成了28451行,之前一直都是28452行。


缺失值填充

当然缺失值除了删除外,还可以进行填充,可以用0填充,也可以用均值、众数填充。用fillna方法进行缺失值的填充。

last_review和reviews_per_month这两列也有缺失值,我们用众数填充(mode)last_review列的缺失值,用均值(mean)填充reviews_per_month列的缺失值。

# 缺失值填充
df_list.fillna({"last_review":df_list.last_review.mode(),
                 "reviews_per_month":df_list.reviews_per_month.mean()})

结果


这里只是举例缺失值也可以被填充这样处理,在这个案例里,不建议这两列填充,空着就空着吧。下节内容来处理重复值和异常值。

写在后面

感觉要和大家说一下我的发文思路,其实相信你已经发现了,每周一雷打不动的一定是可乐的原创文章首发,周三和周五是读者投稿,或者是我从其他公众号选的非常棒的文章转发,又或者不是很忙的话还可以再发一篇原创,周末就随意了,发文时间一般是早上8点到9点之间,早高峰,可能大家坐地铁的时候就利用这个碎片化时间恰好阅读一下吧,周末发文一般是中午或晚上。

加油!


猜你喜欢
Python数据分析实战:获取数据

《吊打分析师》实战—我要租个好房

为什么要学统计学:赤裸裸的统计学

成为数据分析师的第三年,我写了10W字

简单的Excel数据分析案例

@ 作者:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@ 加微信(data_cola)备注:进群,拉你进可乐的数据分析交流群,数据分析知识总结,不定期行业经验分享


相关文章

  • 《Python数据分析与挖掘实战》读书笔记-数据预处理(一)

    《Python数据分析与挖掘实战》,第四章数据预处理 缺失值处理 上一篇说到,处理缺失值的方法有3种:删除记录、数...

  • day80-数据清洗及数据库连接

    1数据清洗 1.1缺失数据处理 isnull检测缺失值;dropna删除缺失值;python内置的none值在对象...

  • 利用R进行脏数据清洗

    在进行正式的数据分析之前,必须要保证数据的质量,故而我们要处理缺失值、异常值这些脏数据。 一、缺失值 缺失值的处理...

  • python数据分析包4|Pandas-02之缺失值(NA)处理

    本篇详解pandas中缺失值(Missing data handling)处理常用操作。缺失值处理常用于数据分析数...

  • 2019-10-12

    原文请看利用Python进行数据分析(10) pandas基础: 处理缺失数据 利用Python进行数据分析(10...

  • 数据分析之特征分析(一)

    1 数据质量分析 数据质量分析的主要任务是检查原始数据中是否存在脏数据。 脏数据包括如下内容: 缺失值缺失值的处理...

  • Python数据分析:缺失值处理

    写在前面 上周我们读取完了数据(Python数据分析实战:获取数据),下面就要对数据进行清洗了,首先是对缺失值的处...

  • 预处理

    数据预处理的常用流程 去除唯一属性 处理缺失值 属性编码 数据标准化 特征选择 主成分分析 缺失值处理的三种方法 ...

  • 数据分析框架

    数据质量分析 一、脏数据包括: 缺失值、异常值、不一致的值、重复数据及含有特殊符号的数据。 1.缺失值处理: 删除...

  • 机器学习 - 特征工程

    数据处理 缺失值处理行数据缺失过多,用户区分度就会降低,列数据缺失过多会导致建模存在偏差fillna:填充缺失值;...

网友评论

    本文标题:Python数据分析:缺失值处理

    本文链接:https://www.haomeiwen.com/subject/abssuhtx.html