首页>参考读物>计算机科学与技术>综合

Python数据整理
作者 : [美]提尔塔吉奥蒂·萨卡(Tirthajyoti Sarkar) [印度]舒布哈迪普·罗伊乔杜里(Shubhadeep Roychowdhury)著
译者 : 马羚 姚成柱 吕晓峰 邓力 张振 译
出版日期 : 2020-06-01
ISBN : 978-7-111-65578-7
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 294
开本 : 16
原书名 : Data Wrangling with Python
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

为使数据有用且有意义,必须对其进行整理和提炼。本书将向读者传输这些过程背后的所有核心思想,并让读者掌握该领域中最通俗的工具和技术的相关知识。
本书从Python基础知识开始,主要聚焦于数据结构,接着简要介绍数据整理的基本工具NumPy和pandas库,之后介绍如何使用相同的Python后端从各种不同的数据源(如internet、大型数据库或Excel财务表)中提取和转换数据,以及如何根据下游的分析工具需求,处理缺失或不正确的数据并重新格式化数据。读者将通过现实世界的示例和数据集学习这些相关概念。最后,通过本书附录中的活动练习,读者将有足够的信心来处理大量的数据源,有效地提取、清理、转换和格式化数据。

图书特色

Python数据整理
[ 美 ]  提尔塔吉奥蒂·萨卡(Tirthajyoti Sarkar)
[ 印度 ] 舒布哈迪普·罗伊乔杜里(Shubhadeep Roychowdhury) 著
马羚 姚成柱 吕晓峰 邓力 张振  译
Data Wrangling with Python

图书前言

说明
前言简要介绍了本书的作者、覆盖范围、学习所需的技术技能以及完成所有活动和练习所需的硬件及软件要求。
关于本书
为使数据有用且有意义,必须对其进行整理和提炼。本书将向你传输这些过程背后的所有核心思想,并让你掌握该领域中最通俗的工具和技术的相关知识。
本书从Python最基础的知识开始,主要聚焦于数据结构,接着快速转至数据整理的基本工具NumPy和pandas库。我们着重讲述为什么应该放弃用其他语言实现的传统方法,而采用Python中预先构建程序的方法实现数据清理。之后,你将了解如何使用相同的Python后端,从各种不同的数据源(如Internet、大型数据库或Excel财务表)中提取和转换数据。然后,你还将学习如何根据下游的分析工具需求,处理缺失或不正确的数据并重新格式化数据。你将通过现实世界的示例和数据集学习这些相关概念。
最后,通过本书附录中的活动练习,你将有足够的信心来处理大量的数据源,从而有效地提取、清理、转换和格式化数据。
关于作者
Tirthajyoti Sarkar博士是半导体技术领域的高级工程师,他将最前沿的数据科学与机器学习技术应用于设计自动化和预测分析,并定期撰写关于Python编程和数据科学主题的文章。他拥有伊利诺伊大学的博士学位和斯坦福大学与麻省理工学院的人工智能和机器学习的证书。
Shubhadeep Roychowdhury 是一家总部在巴黎的网络安全初创公司的高级软件工程师,目前致力于应用最先进的计算机视觉、数据工程算法和工具开发尖端产品。他经常撰写Python算法实现和类似主题的文章。他拥有西孟加拉邦科技大学的计算机科学硕士学位和斯坦福大学的机器学习证书。
学习目标
使用与操作复杂和简单的数据结构;
在运行时充分利用DataFrame和Numpy数组;
使用BeautifulSoup4和html5lib执行网络抓取;
使用正则表达式(RegEX)执行高级字符串搜索和操作;
通过pandas处理异常值与执行数据推算;
使用描述性统计和绘图技术;
利用数据生成技术练习数据整理和建模。
方法
本书采用一种实用的方法,为初学者在尽可能短的时间内提供必要的数据分析工具。书中包含多个活动,这些活动使用真实生活中的业务场景,供你在高度相关的情景下练习和应用新技能。
读者
本书主要面向开发人员、数据分析人员和业务分析人员等读者,他们都渴望成为成熟的数据科学家或分析专家。尽管这本书是为初学者准备的,但要轻松掌握书中所涵盖的概念,必须具备Python的基础知识。这对掌握关系数据库和SQL的基本知识也会有所帮助。
最低硬件要求
为了获得最佳学习体验,我们推荐以下硬件配置:
处理器:英特尔酷睿i5或同等处理器;
内存:8 GB RAM;
存储空间:35 GB 可用空间。
软件要求
需要预先安装以下软件:
操作系统:64位Windows 7 SP1、64位Windows 8.1或64位Windows 10、Ubuntu Linux或macOS最新版本;
OS X的版本;
处理器:英特尔酷睿i5或同等处理器;
内存:4 GB RAM(优先选择8 GB);
存储空间:35 GB可用空间。
安装和设置
千里之行,始于足下。我们即将在数据整理领域展开的学习也不例外。在能够用数据做一些了不起的事情之前,我们需要准备好最高效的环境。在本节中,我们将看看如何做到这一点。
关于本书环境的唯一先决条件是安装Docker。如果你从来没有听说过Docker,或者对它只有一个非常模糊的概念,那么不要害怕。在本书中你只需要知道,Docker是一个轻量级的容器化引擎,在三个主要平台(Linux、Windows和macOS)上均可运行,其背后的主要思想是在本地操作系统之上提供安全、简单和轻量级的虚拟化。
安装Docker
1.在Mac或Windows机器上安装Docker需要创建一个Docker账户并下载最新版本。安装和设置都很容易。
2.设置好Docker后,打开一个shell(Mac用户打开Terminal),并键入命令docker version,以验证安装成功。如果输出显示Docker的服务器和客户机版本,那么就全都设置好了。
拉取镜像
1.为拉取镜像你需要安装所有必要的包(包括Python 3.6.6),并准备好开始工作。在shell中输入以下命令:

2.如果你想了解此镜像中包含的所有包及其版本的完整列表,可以在本书源代码存储库的setup文件夹中查看requirements.txt文件。一旦查看到镜像,就可以准备下载了。下载它需要的时间取决于你的连接速度。
运行环境
1.使用以下命令运行镜像:

这将为你提供一个随时可用的环境。
2.打开Chrome或Firefox中的浏览器选项卡,转到http://localhost:8888。系统将提示你输入令牌,这个令牌是dw_4_all。
3.在运行镜像之前,创建一个新文件夹,并使用cd命令从shell导航到该文件夹。
一旦你创建一个notebook并将其保存为ipynb文件,你就可用Ctrl +C组合键停止运行镜像。
Jupyter notebook简介
Jupyter项目是一个开源的免费软件,它可以让你运行用Python和其他一些语言编写的代码,并通过一个类似于浏览器界面的特殊notebook进行交互。它诞生于2014年的IPython项目,并自此成为所有数据科学工作者的默认选择。
1.运行Jupyter服务器之后,单击New并选择Python 3。新的浏览器选项卡将打开一个新的空notebook。重命名Jupyter文件,如图1所示。

图1 Jupyter服务器界面
Jupyter notebook(见图2)的主要组成部分是单元。有两种类型的单元:In(Input)和Out(Output)。你可以在In单元中编写代码、普通文本和标记,按Shift + Enter(或Shift + Return)组合键将执行在该单元中编写的代码。结果将显示在Out单元中,之后你将进入一个新的In单元,为下一个代码块做好准备。一旦习惯了这个界面,你会慢慢地发现它所提供的强大功能和灵活性。
2.关于Jupyter单元你应该知道的最后一点是,当你启动一个新单元时,默认情况下假定你将在其中编写代码。但是,如果你想编写文本,则必须更改类型(Markdown)。你可以使用键序列Escape ->m ->Enter来实现这一点:

图2 Jupyter notebook
3.当你编写完文本后,使用Shift + Enter组合键来执行它。与代码单元不同,编译后的Markdown将显示在与In单元相同的位置。
说明
要获得Jupyter中所有快捷键的“备忘单”,你可以将网站https://gist.github.com/kidpixo/f4318f8c8143adee5b40添加到书签。有了这个基本的介绍和准备好的镜像,我们就可以开始期待激动人心的启迪之旅了!
安装代码包
将类的代码包复制到C:/code文件夹中。
其他资源
本书的代码包存储在GitHub上,网址为https://github.com/TrainingByPackt/Data-Wrangling-with-Python,你也可以到机工新阅读网站(www.cmpreading.com)下载。
我们还有来自丰富书籍和视频目录的其他代码包,可从https://github.com/Packt-Publishing/获取。试试吧!

上架指导

计算机\数据科学

封底文字

为了使数据有用且有意义,必须对其进行整理和提炼。本书将向你揭示这些过程背后的核心思想,并让你掌握该领域中流行的工具和技术的相关知识。
本书以Python为基础,重点关注数据结构,然后深入到数据整理的基本工具,如Numpy和pandas库。你将深入了解为什么应该远离基于其他语言实现的传统数据清理方式,而利用Python中特定的预建例程。
Python提示和技巧的组合将演示如何使用相同的Python后端从各种数据源(包括互联网、大型数据库和Excel财务表)提取和转换数据。为了帮你应对更具挑战性的场景,本书将向你介绍如何处理缺失数据或错误数据,并根据下游分析工具要求重新格式化数据。本书将通过现实世界的例子和数据集进一步帮助你掌握相关概念。
通过本书的学习,你将有信心对各种不同的数据源进行高效的提取、清理、转换并格式化数据。

通过阅读本书,你将学到:
 使用与操作复杂和简单的数据结构。
 在运行时充分利用DataFrame和Numpy数组。
 使用BeautifulSoup4和html5lib执行网络抓取。
 使用正则表达式(RegEX)执行高级字符串搜索和操作。
 通过pandas处理异常值与执行数据填充。
 描述性统计和绘图技术的使用。
 基于数据生成技术的数据整理和建模。

作者简介

[美]提尔塔吉奥蒂·萨卡(Tirthajyoti Sarkar) [印度]舒布哈迪普·罗伊乔杜里(Shubhadeep Roychowdhury)著:Tirthajyoti Sarkar博士是半导体技术领域的高级工程师,他将前沿的数据科学与机器学习技术应用于设计自动化和预测分析,并定期撰写关于Python编程和数据科学主题的文章。 他拥有伊利诺伊大学的博士学位和斯坦福大学与麻省理工学院的人工智能和机器学习的证书。

Shubhadeep Roychowdhury 是一家总部在巴黎的网络安全初创公司的高级软件工程师,目前致力于应用先进的计算机视觉、数据工程算法和工具开发尖端产品。他经常撰写Python算法实现和类似主题的文章。他拥有西孟加拉邦科技大学的计算机科学硕士学位和斯坦福大学的机器学习证书。

译者序

本书是一本最基础、最实用的Python数据整理学习资料。它从简单的数据结构实现开始,逐步深入到复杂的数据管理系统操作,可供数据整理入门级到中高级的读者学习,是一本可以陪伴你成长的好书。本书在每章都安排了大量的练习以帮助读者全方位地理解并掌握相关概念。除此之外,本书还组织了很多活动和实例以进一步综合运用相关工具和技术。
全书共分为9章。第1章详细介绍了数据整理的重要性,明确了Python数据整理工作中的重点,并介绍了Python的基本数据结构及其实现;第2章是本书的基础,阐述了Python中的高级数据结构和操作系统的文件操作功能;第3章着重描述了Python中NumPy、pandas和Matplotlib三个基本库的基础知识;第4章深入分析了pandas DataFrame的相关知识;第5章介绍了应用于现实生活的网络抓取的数据整理技术;第6章提出现实生活中发生的数据问题,并学习如何解决这些问题;第7章学习如何从网页、XML文件和API中收集数据;第8章解释了数据库的概念(包括数据库的创建、操作和控制),以及如何将表格转换为pandas DataFrame;第9章将前面所学的知识应用到实际数据集中,并对其不同方面进行研究。
翻译工作的分工如下:马羚负责前言、目录和第1~3章的翻译;姚成柱负责第4~6章的翻译;吕晓峰负责第7、8章的翻译;邓力负责第9章的翻译;张振负责附录和全书图表的翻译以及后期的校稿工作。马羚负责全书的统筹协调,并对全书进行了最后的统稿。
由于本书内容丰富,包含的细节多,加上译者水平有限,书中难免有不当和疏漏之处,敬请读者提出宝贵意见。

译者
2019年12月

图书目录

译者序
前言
第1章 Python数据整理入门1
1.1 引言1
1.2 Python数据整理3
1.3 列表、集合、字典、元组和字符串3
1.3.1 列表4
练习1:访问列表成员 4
练习2:生成列表5
练习3:遍历列表并检查成员7
练习4:列表排序8
练习5:生成随机列表9
活动1:处理列表10
1.3.2 集合11
1.3.3 字典13
练习6:访问和设置字典中的值13
练习7:遍历字典14
练习8:再次讨论唯一值列表问题14
练习9:删除字典中的值15
练习10:字典推导式16
1.3.4 元组16
练习11:处理元组17
1.3.5 字符串18
练习12:访问字符串18
练习13:字符串切片19
练习14:字符串拆分与合并20
活动2:分析多行字符串并生成唯一单词数量21
1.4 小结22
第2章 高级数据结构和文件处理23
2.1 引言23
2.2 高级数据结构23
2.2.1 迭代器24
练习15:迭代器介绍24
2.2.2 栈25
练习16:在Python中实现栈26
练习17:使用用户定义的方法实现栈26
2.2.3 Lambda表达式28
练习18:用Lambda表达式证明三角恒等式28
练习19:用于排序的Lambda表达式29
练习20:多元素成员检查30
2.2.4 队列30
练习21:在Python中实现队列31
活动3:Permutations、迭代器、Lambda、列表32
2.3 Python基本文件操作33
练习22:写入和读取环境变量33
练习23:打开和关闭文件34
练习24:逐行读取文件36
练习25:写入文件37
活动4:设计专属CSV解析器38
2.4 小结39
第3章 NumPy、pandas和Matplotlib简介40
3.1 引言40
3.2 NumPy数组操作40
练习26:从列表中创建NumPy数组41
练习27:两个NumPy数组相加42
练习28:NumPy数组的数学运算43
练习29:NumPy数组的高级数学运算43
练习30:使用arange和linspace生成数组44
练习31:创建多维数组45
练习32:二维数组的维度、形状、大小和数据类型46
练习33:全零、全一、随机、单位矩阵和向量46
练习34:reshape和 ravel函数48
练习35:索引和切片49
练习36:数组操作(数组-数组、数组-标量和通用函数)52
3.3 pandas的DataFrame54
练习37:创建pandas序列55
练习38:pandas序列和数据处理56
练习39:创建pandas DataFrame57
练习40:查看部分DataFrame58
练习41:创建和删除新的列或行61
3.4 NumPy和pandas的统计与可视化63
3.4.1 基本描述性统计(用于可视化的Matplotlib库)63
练习42:通过散点图介绍Matplotlib64
3.4.2 统计指标的定义—集中趋势和分布65
3.4.3 随机变量与概率分布66
3.4.4 统计和可视化中的数据整理68
3.4.5 DataFrame的基本描述性统计计算68
练习43:从均匀分布生成随机数68
练习44:从二项分布和条形图生成随机数69
练习45:从正态分布和直方图生成随机数70
练习46:从DataFrame计算描述性统计71
练习47:内置绘图实用工具74
活动5:从CSV文件生成统计数据75
3.5 小结75
第4章 深入学习Python数据整理77
4.1 引言77
4.2 选取子集、过滤和分组77
4.2.1 选取子集78
练习48:从Excel文件加载和检查超市的销售数据78
练习49:unique函数80
4.2.2 条件选择与布尔过滤81
练习50:设定和重置索引84
4.2.3 分组86
练习51:GroupBy方法86
4.3 处理缺失值和检测异常值89
4.3.1 pandas中的缺失值89
练习52:用fillna填充缺失值91
练习53:用dropna删除缺失值93
4.3.2 使用简单的统计测试进行异常值检测94
4.4 合并数据的方法:concat、merge和join96
练习54:concat方法96
练习55:merge方法(通过公共键)97
练习56:join方法100
4.5 pandas的实用方法102
4.5.1 随机抽样102
练习57:使用sample方法随机抽样102
4.5.2 value_counts方法103
4.5.3 数据透视表功能104
练习58:按列值排序—sort_values方法105
练习59:使用apply方法实现用户自定义函数的灵活性107
活动6:成人收入数据集的使用109
4.6 小结110
第5章 适应不同类型的数据源112
5.1 引言112
5.2 从不同的基于文本的(和非文本的)源中读取数据112
5.2.1 本章提供的数据文件113
5.2.2 本章需安装的库113
5.2.3 从CSV文件中读取文件113
练习60:从缺少表头的CSV文件中读取数据113
练习61:读取不以逗号为分隔符的CSV文件115
练习62:重置CSV文件的表头116
练习63:读取CSV文件时跳过初始行和页脚116
练习64:结合使用skiprows和nrows来读取小块数据118
5.2.4 使用sheet_name从Excel文件读取数据并处理不同的sheet_name120
5.2.5 从文本文件中读取数据121
练习65:读取一般分隔的文本文件121
5.2.6 从非文本源中读取数据121
练习66:从URL中直接读取HTML表121
练习67:从JSON文件中读取数据123
练习68:从PDF文件读取表格数据124
5.3 BeautifulSoup 4和网页解析简介126
练习69:使用BeautifulSoup读取HTML文件并提取内容127
练习70:DataFrame和BeautifulSoup131
练习71:以Excel文件格式导出DataFrame 132
练习72:使用bs4栈文档中的URL133
活动7:从网页读取表格数据并创建DataFrame133
5.4 小结134
第6章 学习数据整理的隐藏秘密135
6.1 引言135
6.2 高级列表推导式和zip函数136
6.2.1 生成器表达式简介136
练习73:生成器表达式136
练习74:一行生成器表达式137
练习75:提取包含单个单词的列表138
6.2.2 zip函数140
练习76:zip函数140
练习77:处理杂乱的数据140
6.3 数据格式化141
6.3.1 %运算符141
6.3.2 使用format函数143
练习78:使用{}表示数据144
6.4 识别并清除异常值145
练习79:数值数据中的异常值146
练习80:使用z-score去除异常值148
练习81:字符串的模糊匹配149
活动8:异常值和缺失数据的处理150
6.6 小结151
第7章 高级网络抓取和数据收集152
7.1 引言152
7.2 网络抓取和BeautifulSoup库的基础152
7.2.1 Python中的库152
7.2.2 requests库153
练习82:使用requests库从Wikipedia主页获取响应153
练习83:检查网络请求的状态154
练习84:创建一个函数来解码响应的内容并检查其长度155
7.2.3 BeautifulSoup库156
练习85:从BeautifulSoup对象中提取人类可读的文本156
练习86:使用高级bs4技术提取相关文本160
练习87:创建一个紧凑函数来从Wikipedia主页提取“On this day”文本163
7.3 从XML读取数据164
练习88:创建XML文件并读取XML元素对象164
练习89:查找树(元素)中的各种数据元素165
7.3.1 从本地XML文件读取数据到ElementTree对象166
练习90:遍历树,找到根,并探索所有子节点的标签和属性166
练习91:使用text方法提取有意义的数据167
7.3.2 使用循环提取和输出人均GDP信息168
练习92:查找并输出每个国家的所有邻国169
练习93:通过网络抓取获得的XML数据的简单使用演示169
7.4 从API读取数据172
7.4.1 定义基URL(或API端点)172
练习94:定义和测试从API提取国家数据的函数173
7.4.2 使用内置的JSON库读取和检查数据174
7.4.3 输出所有数据元素175
7.4.4 使用函数提取包含关键信息的DataFrame176
练习95:通过建立一个国家信息的小型数据库来测试这个函数177
7.5 正则表达式的基础178
7.5.1 网络抓取中的正则表达式178
练习96:使用match方法检查模式是否与字符串或序列匹配179
7.5.2 使用compile方法创建正则表达式程序179
练习97:编译程序以匹配对象180
练习98:在匹配中使用附加参数来检查特定位置的匹配180
7.5.3 正则表达式中的search方法182
练习99:正则表达式中的search方法182
练习100:使用Match对象的span方法来定位匹配模式的位置182
练习101:使用search进行单字符模式匹配的示例183
练习102:字符串开头或结尾的模式匹配示例184
7.5.4 多种匹配模式185
练习103:多字符模式匹配示例185
练习104:贪婪匹配与非贪婪匹配186
练习105:控制重复次数的匹配187
练习106:匹配字符集188
练习107:在正则表达式中使用OR运算符190
7.5.5 findall方法191
活动9:从古腾堡提取Top 100的电子书191
活动10:通过读取API构建自己的电影数据库192
7.6 小结193
第8章 关系数据库管理系统和结构化查询语言195
8.1 引言195
8.2 RDBMS和SQL概述196
8.2.1 RDBMS是如何组织的196
8.2.2 SQL196
8.3 使用RDBMS(MySQL/PostgreSQL/SQLite)199
8.3.1 使用SQLite处理单个表199
练习108:连接到SQLite中的数据库199
练习109:SQLite中的DDL和DML命令200
练习110:对数据库中的值进行排序202
练习111:更改表的结构并更新新添加的字段202
练习112: 对表中的值进行分组203
8.3.2 数据库中的关系映射204
练习113:删除行208
练习114:RDBMS和DataFrame209
活动11:从数据库正确检索数据210
8.4 小结212
第9章 数据整理在现实生活中的应用213
9.1 引言213
9.2 将所学知识应用于现实生活中的数据整理任务213
活动12:数据整理任务—修复联合国数据214
活动13:数据整理任务—清理GDP数据215
活动14:数据整理任务—合并联合国数据和GDP数据216
活动15:数据整理任务—将新数据连接到数据库217
9.3 数据整理拓展延伸217
9.3.1 成为数据科学家所需的额外技能217
9.3.2 大数据和云技术的基础知识218
9.3.3 数据整理的地位219
9.3.4 掌握机器学习的技巧和窍门220
9.4 小结221
附录 活动实施步骤222

教学资源推荐
作者: (美)Yue-Ling Wong 著
作者: 赵淑芬 主编  康宇光 副主编
作者: 王月海 何丽 孟丹 张艳苏 编著
参考读物推荐