描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302663539
在《Pandas实战》中,你将看到经验丰富的数据科学家如何使用Pandas进行数据分析来解决各种问题。与其他Python书籍侧重于理论并花太多时间在枯燥的技术解释上不同,本书旨在让你快速编写干净的代码,通过动手实践建立你的理解。
《Pandas实战》详细阐述了与Pandas数据分析相关的基本知识,主要包括数据结构、数据的输入和输出、Pandas数据类型、数据选择、数据探索和转换、理解数据可视化、数据建模、在Pandas中使用时间、探索时间序列、Pandas数据处理案例研究等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
第1篇 Pandas基础知识
第1章 初识Pandas 3
1.1 Pandas世界介绍 3
1.2 探索Pandas的历史和演变 4
1.3 Pandas的组件和应用 4
1.4 了解Pandas的基本概念 5
1.4.1 Series对象 7
1.4.2 DataFrame对象 8
1.4.3 使用本地文件 11
1.4.4 读取CSV文件 12
1.4.5 显示数据快照 12
1.4.6 将数据写入文件中 13
1.4.7 练习1.1—使用Pandas读取和写入数据 13
1.4.8 Pandas中的数据类型 15
1.4.9 数据选择 18
1.4.10 数据转换 20
1.4.11 数据可视化 20
1.4.12 时间序列数据 22
1.4.13 代码优化 24
1.4.14 实用工具函数 25
1.4.15 练习1.2—使用Pandas进行基本数值运算 29
1.4.16 数据建模 36
1.4.17 练习1.3—比较两个DataFrame的数据 37
1.5 作业1.1—比较两家商店的销售数据 44
1.6 小结 45
第2章 数据结构 47
2.1 数据结构简介 47
2.2 对数据结构的需求 48
2.2.1 数据结构 49
2.2.2 在Pandas中创建DataFrame 50
2.2.3 练习2.1—创建DataFrame 56
2.3 了解索引和列 58
2.3.1 练习2.2—读取DataFrame并进行索引操作 65
2.3.2 使用列 69
2.4 使用Pandas Series 71
2.4.1 Series索引 72
2.4.2 练习2.3—从Series到DataFrame 76
2.4.3 使用时间作为索引 80
2.4.4 练习2.4—DataFrame索引 83
2.5 作业2.1—使用Pandas数据结构 86
2.6 小结 87
第3章 数据的输入和输出 89
3.1 数据世界 89
3.2 探索数据源 93
3.2.1 文本文件和二进制文件 93
3.2.2 在线数据源 95
3.2.3 练习3.1—从网页中读取数据 97
3.3 基本格式 99
3.3.1 文本数据 99
3.3.2 练习3.2—文本字符编码和数据分隔符 109
3.3.3 二进制数据 111
3.3.4 数据库—SQL数据 112
3.3.5 sqlite3 113
3.4 其他文本格式 114
3.4.1 使用JSON 115
3.4.2 使用HTML/XML 118
3.4.3 使用XML数据 120
3.4.4 使用Excel 122
3.4.5 SAS数据 125
3.4.6 SPSS数据 126
3.4.7 Stata数据 127
3.4.8 HDF5数据 128
3.5 操作SQL数据 129
3.5.1 使用Pandas操作数据库 129
3.5.2 练习3.3—使用SQL 134
3.5.3 为项目选择格式 138
3.6 作业3.1—使用SQL数据进行Pandas分析 139
3.7 小结 140
第4章 Pandas数据类型 141
4.1 Pandas dtypes简介 141
4.1.1 了解基础数据类型 141
4.1.2 从一种类型转换为另一种类型 145
4.1.3 练习4.1—基础数据类型和转换 149
4.2 缺失数据类型 156
4.2.1 缺失值的表示 156
4.2.2 可为空类型 157
4.2.3 练习4.2—将缺失数据转换为不可为空的数据类型 159
4.3 作业4.1—通过转换为适当的数据类型来优化内存使用 163
4.4 按数据类型创建子集 164
4.4.1 字符串方法 164
4.4.2 使用category类型 167
4.4.3 使用dtype = datetime64[ns] 169
4.4.4 使用dtype = timedelta64[ns] 174
4.4.5 练习4.3—使用字符串方法处理文本数据 175
4.4.6 按数据的dtype在DataFrame中选择数据 178
4.5 小结 181
第2篇 处 理 数 据
第5章 数据选择—DataFrame 185
5.1 DataFrame简介 185
5.1.1 Pandas DataFrame操作的关联性 185
5.1.2 对数据选择方法的需求 186
5.2 Pandas DataFrame中的数据选择 187
5.2.1 索引及其形式 189
5.2.2 练习5.1—识别数据集中的行和列索引 191
5.2.3 保存索引或列 193
5.2.4 切片和索引方法 194
5.2.5 布尔索引 203
5.2.6 练习5.2—创建行和列的子集 204
5.2.7 使用标签作为索引和Pandas多级索引 206
5.2.8 从列中创建多级索引 211
5.3 作业5.1—从列中创建多级索引 214
5.4 括号和点表示法 216
5.4.1 括号表示法 216
5.4.2 点表示法 216
5.4.3 选择整列 217
5.4.4 选择一个行范围 219
5.4.5 练习5.3—整数行号与标签 220
5.4.6 使用扩展索引 223
5.4.7 类型异常 226
5.5 使用括号或点表示法更改DataFrame值 228
5.5.1 使用括号表示法轻松修改数据 228
5.5.2 链式操作可能产生的问题及其解决方案 229
5.5.3 练习5.4—使用括号和点表示法选择数据 232
5.6 小结 236
第6章 数据选择—Series 237
6.1 Pandas Series介绍 237
6.2 Series索引 237
6.2.1 Pandas Series中的数据选择 239
6.2.2 括号表示法、点表示法、Series.loc和Series.iloc 239
6.2.3 练习6.1—基本Series数据选择 243
6.3 从DataFrame中创建Series或从Series中获取DataFrame 246
6.3.1 从DataFrame中创建Series 246
6.3.2 从Series中获取DataFrame 248
6.3.3 练习6.2—使用Series索引选择值 251
6.4 作业6.1—Series数据选择 255
6.5 了解基础Python和Pandas数据选择之间的差异 256
6.5.1 列表与Series访问 256
6.5.2 DataFrame与字典访问 257
6.6 作业6.2—DataFrame数据选择 259
6.7 小结 261
第7章 数据探索和转换 263
7.1 数据转换简介 263
7.2 处理混乱的数据 263
7.2.1 处理没有列标题的数据 264
7.2.2 一列中的多个值 269
7.2.3 行和列中的重复观察值 274
7.2.4 练习7.1—处理格式混乱的地址 276
7.2.5 多个变量被存储在一列中 280
7.2.6 具有相同结构的多个DataFrame 284
7.2.7 练习7.2—按人口统计信息存储销售数据 287
7.3 处理缺失数据 293
7.3.1 关于缺失数据 293
7.3.2 缺失数据的处理策略 294
7.3.3 应用删除策略 294
7.3.4 应用插补策略 296
7.4 汇总数据 299
7.4.1 分组和聚合 299
7.4.2 探索数据透视表 304
7.5 作业7.1—使用数据透视表进行数据分析 308
7.6 小结 310
第8章 理解数据可视化 311
8.1 数据可视化简介 311
8.2 了解Pandas可视化的基础知识 312
8.2.1 使用plot()函数绘图 312
8.2.2 练习8.1—为泰坦尼克号数据集构建直方图 321
8.3 探索Matplotlib 324
8.4 可视化不同类型的数据 330
8.4.1 可视化数值数据 331
8.4.2 可视化分类数据 337
8.4.3 可视化统计数据 342
8.4.4 练习8.2—泰坦尼克号数据集的箱线图 344
8.4.5 可视化多个数据图 348
8.5 作业8.1—使用数据可视化进行探索性数据分析 350
8.6 小结 351
第3篇 数 据 建 模
第9章 数据建模—预处理 355
9.1 数据建模简介 355
9.2 探索因变量和自变量 356
9.2.1 拆分训练集、验证集和测试集 366
9.2.2 练习9.1—创建训练、验证和测试数据 374
9.2.3 避免信息泄露 379
9.2.4 完整的模型验证 380
9.3 了解数据缩放和归一化 381
9.3.1 缩放数据的不同方法 381
9.3.2 自己缩放数据 382
9.3.3 最小值/最大值缩放 383
9.3.4 最小值/最大值缩放用例—神经网络 384
9.3.5 标准化—解决差异问题 386
9.3.6 转换回真实单位 390
9.3.7 练习9.2—缩放和归一化数据 390
9.4 作业9.1—数据拆分、缩放和建模 396
9.5 小结 397
第10章 数据建模—有关建模的基础知识 399
10.1 数据建模简介 399
10.2 了解建模基础知识 400
10.2.1 建模工具 400
10.2.2 Pandas建模工具 400
10.2.3 其他重要的Pandas方法 410
10.2.4 窗口函数 411
10.2.5 窗口方法 414
10.2.6 平滑数据 417
10.3 预测时间序列的未来值 427
10.3.1 以原始日期为中心的平滑窗口 427
10.3.2 使用加权窗口平滑数据 430
10.3.3 练习10.1—平滑数据以发现模式 432
10.4 作业10.1—归一化和平滑数据 436
10.5 小结 437
第11章 数据建模—回归建模 439
11.1 回归建模简介 439
11.2 探索回归建模 440
11.2.1 使用线性模型 446
11.2.2 练习11.1—线性回归 450
11.2.3 非线性模型 455
11.3 模型诊断 455
11.3.1 比较预测值和实际值 455
11.3.2 使用Q-Q图 457
11.3.3 练习11.2—多元回归和非线性模型 462
11.4 作业11.1—实现多元回归 472
11.5 小结 483
第4篇 其他Pandas用例
第12章 在Pandas中使用时间 487
12.1 时间序列简介 487
12.2 Pandas datetime 488
12.2.1 datetime对象的属性 489
12.2.2 练习12.1—使用datetime 491
12.2.3 创建和操作日期时间对象/时间序列 497
12.2.4 Pandas中的时间周期 500
12.2.5 Pandas时间感知对象中的信息 501
12.2.6 练习12.2—日期时间的数学 503
12.2.7 时间戳格式 507
12.2.8 日期时间本地化 509
12.2.9 时间戳限制 509
12.3 作业12.1—了解电力使用情况 510
12.4 日期时间数学运算 514
12.4.1 日期范围 514
12.4.2 时间差值、偏移量和差异 516
12.4.3 日期偏移 518
12.4.4 练习12.3—时间差值和日期偏移 521
12.5 小结 525
第13章 探索时间序列 527
13.1 使用时间序列作为索引 527
13.1.1 时间序列周期/频率 527
13.1.2 移动、滞后和转换频率 529
13.2 按时间重采样、分组和聚合 530
13.2.1 使用重采样方法 531
13.2.2 练习13.1—聚合和重采样 535
13.2.3 使用滚动方法的窗口操作 539
13.3 作业13.1—创建时间序列模型 545
13.4 小结 550
第14章 Pandas数据处理案例研究 551
14.1 案例研究和数据集简介 551
14.2 预处理步骤回顾 552
14.2.1 预处理德国气象数据 555
14.2.2 练习14.1—预处理德国气象数据 556
14.2.3 练习14.2—合并DataFrame和重命名变量 560
14.2.4 练习14.3—插补数据并回答问题 563
14.2.5 练习14.4—使用数据可视化来回答问题 566
14.2.6 练习14.5—使用数据可视化来回答问题 573
14.2.7 练习14.6—分析公交车轨迹数据 576
14.3 作业14.1—分析空气质量数据 584
14.4 小结 585
附录A 作业答案 587
作业1.1答案 587
作业2.1答案 590
作业3.1答案 592
作业4.1答案 594
作业5.1答案 599
作业6.1答案 601
作业6.2答案 604
作业7.1答案 607
作业8.1答案 610
作业9.1答案 616
作业10.1答案 619
作业11.1答案 626
作业12.1答案 641
作业13.1答案 648
作业14.1答案 654
·XVI·
Pandas实战
·XVII·
目 录
本书将告诉你如何利用数据提高工作效率并生成真实的业务洞察力,为你的决策提供信息。你将通过现实世界的数据科学问题获得指导,并了解如何在现实示例和练习的背景下应用一些关键技术。此外,本书各章还提供了一些作业,以帮助你巩固学习到的新技能,为实际的数据科学项目做好准备。
在本书中,你将看到经验丰富的数据科学家如何使用Pandas进行数据分析来解决各种问题。与其他Python书籍侧重于理论并花太多时间在枯燥的技术解释上不同,本书旨在让你快速编写干净的代码,通过动手实践建立你的理解。
在阅读本书时,你将处理各种现实世界应用场景,例如使用空气质量数据集了解城市中二氧化氮排放的模式,以及分析交通数据以改善公共汽车交通服务等。
通读完本书之后,你将获得数据分析知识、技能和信心,用Pandas解决具有挑战性的数据科学问题。
本书读者
本书适用于任何有使用Python编程语言经验并希望使用Pandas进行数据分析的学习者。本书不需要读者具有前置Pandas知识。
内容介绍
本书分为4篇,共14章。具体内容如下。
* 第1篇“Pandas基础知识”,包含第1~4章。
> 第1章“初识Pandas”,阐释Pandas为何会成为当今数据处理领域最流行的应用程序之一,以及为什么它是最受数据科学家欢迎的工具。本章简要介绍Pandas的许多通用功能。另外,本章还介绍本书将涵盖的所有主题,以及一些使用Pandas的介绍性练习。
> 第2章“数据结构”,介绍Pandas的一个关键优势,即它提供了与广泛的数据分析任务相一致的直观数据结构。本章的重点是介绍Pandas中的重要数据结构,尤其是DataFrame、Series和Pandas索引结构。
> 第3章“数据的输入和输出”,探讨Pandas提供的内置函数,这些函数用于从各种来源读取数据,以及将数据写回或写入新文件中。另外,本章还介绍所有重要的受支持的输入/输出方法。
> 第4章“Pandas数据类型”,解释为什么在使用Pandas进行数据分析时,使用正确的数据类型至关重要,否则可能会出现意外结果或错误。本章的重点是了解Pandas数据类型以及如何使用它们。
* 第2篇“处理数据”,包含第5~8章。
> 第5章“数据选择—DataFrame”,在你已经掌握了Pandas中可用的数据结构和方法的基础上,深入探讨DataFrame的使用。
> 第6章“数据选择—Series”,重点介绍使用Pandas Series时的一些重要区别,并且是第5章“数据选择—DataFrame”的补充。
> 第7章“数据探索和转换”,讨论在数据集质量不佳时如何面对这一挑战。另外,本章还讨论如何使用Pandas来解决这些挑战并为你的分析做好准备。
> 第8章“理解数据可视化”,讨论Pandas如何提供内置的数据可视化方法来加速数据分析。另外,本章还讨论如何从DataFrame中构建数据可视化,以及如何使用Matplotlib进一步自定义它们。
* 第3篇“数据建模”,包含第9~11章。
> 第9章“数据建模—预处理”,帮助你了解如何在Pandas中进行一些初步的数据审查和分析,以及一些对成功建模很重要的转换。
> 第10章“数据建模—有关建模的基础知识”,介绍一些强大的Pandas方法,这些方法可以对数据进行重采样和平滑处理,以找到可用于更复杂建模任务的模式并获得洞察力。
> 第11章“数据建模—回归建模”,重点介绍一种主力方法—回归建模。这是使用模型理解数据和进行预测的重要步骤。到该章结束时,你将能够使用回归模型处理复杂的多变量数据集。
* 第4篇“其他Pandas用例”,包括第12~14章。
> 第12章“在Pandas中使用时间”,描述Pandas支持的另一种数据类型:时间序列数据。本章重点介绍Pandas如何提供各种方法来处理按日期和/或时间组织的数据。在本章中,你将学习如何对时间戳进行操作,并了解Pandas提供的所有其他与时间相关的属性。
> 第13章“探索时间序列”,重点介绍如何使用时间序列索引对时间序列数据执行操作以获得洞察力。到本章结束时,你将掌握对时间序列数据应用回归建模的技巧。
> 第14章“Pandas数据处理案例研究”,帮助你将在本书中学习到的有关Pandas的知识应用于实际的数据分析问题。本章涵盖三个案例研究,在这三个案例研究中,你将应用你通过本书获得的大部分技能。
最后,本书附录部分还提供了各章作业的答案。
充分利用本书
本书假设你具备良好的Python基础知识,尤其是使用Jupyter Notebook创建代码的能力。你需要在本地计算机上设置Python环境,包括Jupyter Notebook,当然还有Pandas。根据创建本地环境的方式,你可能需要安装其他依赖项。完整列表可在本书配套GitHub存储库中的requirements.txt文件中找到。
本书涵盖的软硬件和操作系统需求如表P.1所示。
表P.1 本书涵盖的软硬件和操作系统需求
本书涵盖的软硬件 操作系统需求 Python 9.x Windows、macOS或Linux Jupyter 1.0.0 Pandas 1.3 Matplotlib 3.3 如果你正在使用本书的数字版本,我们建议你自己输入代码或从本书的GitHub存储库中访问代码(后续提供链接地址)。这样做将帮助你避免与复制和粘贴代码相关的任何潜在错误。
构建开发环境
Pandas是用于Python编程语言的第三方程序包,本书使用的版本为1.3。本书中的所有示例都应该可以在Python 9.x版本中正常工作。
你可以通过多种方式在计算机上安装Pandas和本书提到的其余库,但是最简单的方法是安装Anaconda发行版。该版本由Anaconda创建,将所有流行的用于科学计算的库打包到一个可下载的文件中,该文件可在Windows、macOS和Linux上使用。你可以访问以下页面以获取Anaconda发行版:
https://www.anaconda.com/distribution
除了所有科学计算库,Anaconda发行版还附带了Jupyter Notebook,这是一个基于浏览器的程序,可使用Python和其他多种语言进行开发。本书的所有示例都是在Jupyter Notebook中开发的,并且提供了所有代码。
当然,不使用Anaconda发行版也可以安装本书所需的所有库。感兴趣的读者可访问Pandas安装页面,其网址如下:
http://pandas.pydata.org/pandas-docs/stable/install.html
下载示例代码文件
本书提供的代码可以在本书配套GitHub存储库中找到,其网址如下:
https://github.com/PacktPublishing/The-Pandas-Workshop
代码如果有更新,那么将在该GitHub存储库中被更新。
下载彩色图像
我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。你可以通过以下网址进行下载:
https://static.packt-cdn.com/downloads/9781800208933_ColorImages.pdf
本书约定
本书中使用了许多文本约定。
(1)代码格式的文本:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄等。以下段落就是一个示例:
请注意将上述示例中加粗显示的路径替换为你自己下载和保存文件的路径。dog_food_orders. csv文件的下载地址如下:
https://github.com/PacktWorkshops/The-Pandas-Workshop/blob/
master/Chapter02/Datasets/dog_food_orders.csv
(2)有关代码块的设置如下:
lin_model = sm.OLS(metal_data[‘alloy_hardness’], X)
my_model = lin_model.fit()
print(my_model.summary())
(3)当我们希望提请你注意代码块的特定部分时,相关行或项目将加粗进行显示:
import pandas as pd
my_data = pd.read_csv(‘Datasets/auto-mpg.data.csv’)
my_data.head()x1 and x2: -0.9335045017430936
(4)术语或重要单词采用中英文对照形式,在括号内保留其英文原文。示例如下:
可以想见,我们可以收集很多数据来描述一个学生—包括他们的年龄、身高和体重等。用于描述一个特定观察单位的一个或多个测量值被称为数据点(data point),数据点中的每个测量值被称为变量(variable),这通常也被称为特征(feature)。它们实际上就是数据集中的列。
(5)对于界面词汇或专有名词,我们将保留其英文原文,并在括号内添加其中文翻译。示例如下:
可以看到mean(平均值)为0,std(标准差)为 1。但是,请注意,它们的min(最小值)和max(最大值)并不完全相同,这是因为 .StandardScaler()将对散布的量进行编码,并通过缩放到固定的标准偏差而不是最小值和最大值来保留点对点关系。
(6)本书还使用了以下两个图标。
表示警告或重要的注意事项。
表示提示信息或操作小技巧。
·VIII·
Pandas实战
·IX·
前 言
评论
还没有评论。