ad

打开《Python 可视化数据分析》_学会挖掘大数据的价值_6.5 数据清洗

网友投稿 142 2023-11-13

【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第6章,第5节,李迎著。

6.5 数据清洗

接触过数据分析的伙伴们会发现,在数据分析和建模的过程中,大部分时间会 用在数据准备上,包括数据加载、清理、转换等。这些工作会占数据分析时间的 80%或更多。有的时候我们还会发现,爬取的网络数据存储在文件和数据库中的数 据的格式并不适合做分析。这时就会使用 Python 、Perl 、R、Java 或 UNIX 文本处 理工具(如 sed 或 awk) 对数据进行专门的格式处理。这个处理过程就是常说的数据清洗过程。

本书将数据清洗内容放到 pandas 这一章,是因为 pandas 和内置的 Python 标准库提供了一组高级、灵活、快速的工具,通过它可以轻松地将数据规整为想要的格式。因此本书在讲解数据预处理时只介绍利用 pandas 进行的知识。

6.5.1 缺失数据处理问题

打开《Python 可视化数据分析》_学会挖掘大数据的价值_6.5 数据清洗

在许多数据分析工作中,缺失数据是经常发生的。pandas 的目标之一就是尽量 轻松地处理缺失数据。例如, pandas 对象的所有描述性统计默认都不包括缺失数据。 缺失数据在pandas 中呈现的方式有些不完美,但对于大多数用户可以保证功能正常。 对于数值数据,pandas 使用浮点值NaN(Not a Number) 表示缺失数据,也被别称为 哨兵值。缺失值标识的方法有两种,分别是使用None 标示缺失值和使用NaN 标示 缺失值。None 只能用于 object 类型数组,如下面代码的2~5行的输出结果所示。 这将会比原生 int、float类型更加消耗资源,而使用NA的过程中是以原生类型 float64 作为数组类型,将具有更好的性能。因为float64 的数组会被编译 C 代码,速度更快 。Pandas 有时会把这两者看成是等价交换的,在适当的时候会将两者进行替换,如代码第8行的输出结果。

6.5.2 去除缺失数据

若获得的数据中存在缺失值,就要在后续的处理中过滤掉缺失数据,其方法很多,在这里分别以 Series 和 DataFrame 对象进行介绍。

我们可以通过 pandas.isnull()或布尔索引的手工方法,也可以使用 dropna()这个 实用的方法。对于 pandas 中的 Series,dropna() 可以给它返回一个仅含非空数据和索引值的 Series:

dropna(self,axis=0,how='any',thresh=None,subset=None,inplace=False), 这些参数 中 axis 标示轴向,0代表行,1代表列。how 有选项 any 、all; thresh 与 how 选项 互斥使用,指定一行或一列非缺失值的最小个数; subset 表示将删除非 axis 轴中所 有指定含有空数据的行或列; inplace 表示是否要创建新的副本, 一般选择 True, 不建立,可以减少资源消耗。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python 可视化数据分析》_学会挖掘大数据的价值_1.2 Python 快速准备
下一篇:学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_2.3.2 BeautifulSoup 的基本使用
相关文章
×