书籍详情
《Python数据预处理》[27M]百度网盘|亲测有效|pdf下载
  • Python数据预处理

  • 出版社:清华大学出版社京东自营官方旗舰店
  • 出版时间:2023-11
  • 热度:11288
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

编辑推荐

数据预处理是数据可视化、数据分析和机器学习的第一步,它将为分析和预测模型准备数据以帮助分析师获得最佳见解。分析师在执行数据分析、数据可视化和机器学习项目时,大约90%的时间都花在数据预处理上。
本书将从多个角度为读者提供最佳的数据预处理技术。读者将了解数据预处理的不同技术和分析过程(包括数据收集、数据清洗、数据集成、数据归约和数据转换等),并掌握如何使用开源Python编程环境来实现它们。

内容简介

《Python数据预处理》详细阐述了与Python数据预处理相关的基本解决方案,主要包括NumPy和Pandas简介、Matplotlib简介、数据、数据库、数据可视化、预测、分类、聚类分析、数据清洗、数据融合与数据集成、数据归约、数据转换等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。


作者简介

罗伊·贾法里博士是美国加州雷德兰兹大学商业分析学助理教授。

Roy讲授和开发了涵盖数据清洗、决策、数据科学、机器学习和优化的大学水平课程。

Roy的教学风格是崇尚动手实践,他相信最好的学习方式是边做边学。Roy采用主动学习的教学理念,读者在本书中将体验到这种主动学习方式


目录

第1篇 技 术 基 础

第1章 NumPy和Pandas简介 3

1.1 技术要求 3

1.2 Jupyter Notebook概述 4

1.3 通过计算机编程进行数据分析的实质含义 6

1.4 NumPy基本函数概述 6

1.4.1 np.arange()函数 8

1.4.2 np.zeros()和np.ones()函数 8

1.4.3 示例—使用占位符来容纳分析 9

1.4.4 np.linspace()函数 10

1.4.5 示例—使用np.linspace()求解 11

1.5 Pandas概述 12

1.6 Pandas数据访问 15

1.6.1 Pandas DataFrame访问 15

1.6.2 访问DataFrame行 15

1.6.3 访问DataFrame列 16

1.6.4 访问DataFrame值 17

1.6.5 访问Pandas Series 17

1.7 切片 18

1.7.1 对NumPy数组进行切片 18

1.7.2 对Pandas DataFrame进行切片 20

1.7.3 切片的实用示例 20

1.8 用于过滤DataFrame的布尔掩码 22

1.8.1 使用布尔掩码的分析示例1 23

1.8.2 使用布尔掩码的分析示例2 24

1.9 用于探索DataFrame的Pandas函数 24

1.9.1 了解数据集的结构 25

1.9.2 使用.shape属性 25

1.9.3 使用.columns属性 25

1.9.4 使用.info()函数 26

1.9.5 了解数据集的值 26

1.9.6 使用.describe()函数 26

1.9.7 用于可视化数值列的直方图和箱线图 27

1.9.8 使用.unique()函数 28

1.9.9 使用.value_counts()函数 28

1.9.10 用于可视化数值列的条形图 29

1.10 应用Pandas函数 29

1.10.1 将函数应用于Series 30

1.10.2 应用函数—分析示例1 30

1.10.3 应用Lambda函数 31

1.10.4 对DataFrame应用函数 31

1.10.5 应用函数—分析示例2 32

1.10.6 Pandas groupby函数 33

1.10.7 使用groupby的分析示例 34

1.10.8 Pandas多级索引 35

1.10.9 使用.unstack()函数 36

1.10.10 使用.stack()函数 38

1.10.11 多级访问 39

1.10.12 Pandas .pivot()和.melt()函数 40

1.11 小结 43

1.12 练习 43

第2章 Matplotlib简介 47

2.1 技术要求 47

2.2 在Matplotlib中绘图 48

2.2.1 使用直方图或箱线图可视化数值特征 48

2.2.2 使用折线图观察数据趋势 49

2.2.3 使用散点图关联两个数值属性 50

2.3 修改绘图的可视化效果 51

2.3.1 将标题添加到可视化对象并将标签添加到轴 52

2.3.2 添加图例 53

2.3.3 修改刻度 53

2.3.4 修改标记 55

2.4 绘制子图 56

2.5 调整并保存结果 58

2.5.1 调整大小 58

2.5.2 保存 58

2.6 Matplotilb辅助进行数据预处理的示例 58

2.7 小结 59

2.8 练习 60

第3章 数据 61

3.1 技术要求 61

3.2 数据的定义 61

3.2.1 HLCU的意义 62

3.2.2 DIKW金字塔 63

3.2.3 机器学习和人工智能的DIKW更新 64

3.2.4 数据分析的DIKW更新 65

3.2.5 用于数据分析的数据预处理与用于机器学习的数据预处理 67

3.2.6 大数据的3个V 67

3.2.7 3个V对数据预处理的重要性 68

3.3 最通用的数据结构—表 68

3.3.1 数据对象 69

3.3.2 强调数据对象的重要性 69

3.3.3 数据特性 70

3.4 数据值的类型 70

3.4.1 从分析的角度看数据类型 70

3.4.2 标称特性 71

3.4.3 序数特性 71

3.4.4 区间标度特性 72

3.4.5 比率标度特性 74

3.4.6 二元特性 74

3.4.7 理解特性类型的重要性 74

3.4.8 从编程的角度看数据类型 75

3.5 信息与模式 75

3.5.1 理解“信息”这个词的日常用法 76

3.5.2 “信息”一词的统计用途 76

3.5.3 分类特性的统计信息 77

3.5.4 数字特性的统计信息 77

3.5.5 数据冗余—呈现相似信息的特性 78

3.5.6 通过相关系数调查数据冗余情况 78

3.5.7 “模式”一词的统计意义 79

3.5.8 查找和使用模式的示例 79

3.6 小结 82

3.7 练习 82

3.8 参考资料 85

第4章 数据库 87

4.1 技术要求 87

4.2 数据库的定义 87

4.2.1 从数据库到数据集 87

4.2.2 理解数据库和数据集之间的区别 88

4.3 数据库类型 89

4.3.1 数据库的差异化元素 90

4.3.2 数据结构化水平 90

4.3.3 存储位置 92

4.3.4 权限 92

4.3.5 关系数据库 92

4.3.6 非结构化数据库 92

4.3.7 一个需要结合结构化和非结构化数据库的实际示例 93

4.3.8 分布式数据库 93

4.3.9 区块链 94

4.4 连接到数据库并从中提取数据 94

4.4.1 直接连接 95

4.4.2 网页连接 96

4.4.3 API连接 97

4.4.4 使用API连接和提取数据的示例 97

4.4.5 后续处理 99

4.4.6 综合操作 100

4.4.7 请求连接 101

4.4.8 公开共享 101

4.5 小结 101

4.6 练习 102

第2篇 分 析 目 标

第5章 数据可视化 107

5.1 技术要求 107

5.2 总结数据的总体 107

5.2.1 总结数值特性的示例 108

5.2.2 总结分类特性的示例 109

5.3 比较数据的总体 111

5.3.1 使用箱线图比较总体的示例 111

5.3.2 使用直方图比较总体的示例 112

5.3.3 使用条形图比较总体的示例 114

5.3.4 解决问题的第一种方法 114

5.3.5 解决问题的第二种方法 115

5.3.6 解决问题的第三种方法 115

5.3.7 解决问题的第四种方法 116

5.3.8 解决问题的第五种方法 117

5.3.9 解决问题的第六种方法 117

5.4 研究两个特性之间的关系 118

5.4.1 可视化两个数值特性之间的关系 118

5.4.2 使用散点图研究数值特性之间关系的示例 118

5.4.3 可视化两个分类特性之间的关系 120

5.4.4 使用列联表检查两个二元分类特性之间关系的示例 121

5.4.5 使用列联表检查两个非二元分类特性之间关系的示例 122

5.4.6 可视化数值特性和分类特性之间的关系 123

5.4.7 检查分类特性和数值特性之间关系的示例 123

5.4.8 检查分类特性和数值特性之间关系的另一个示例 125

5.5 添加可视化维度 127

5.5.1 五维散点图示例 127

5.5.2 第四个维度 130

5.5.3 第五个维度 131

5.6 显示和比较趋势 133

5.6.1 时间序列数据和折线图 133

5.6.2 可视化和比较趋势的示例 134

5.7 小结 136

5.8 练习 137

第6章 预测 141

6.1 技术要求 141

6.2 预测模型 141

6.2.1 Forecast 142

6.2.2 使用Forecast来预测未来的示例 142

6.2.3 回归分析 143

6.2.4 设计回归分析以预测未来值的示例 144

6.3 线性回归 145

6.3.1 应用线性回归方法的示例 145

6.3.2 使用经过训练的回归公式进行预测 148

6.4 MLP 150

6.4.1 MLP的工作原理 151

6.4.2 反向传播 152

6.4.3 应用MLP进行回归分析的示例 152

6.4.4 MLP每次运行都会获得不同的预测结果 153

6.4.5 MLP算法无法收敛 153

6.5 小结 154

6.6 练习 154

第7章 分类 157

7.1 技术要求 157

7.2 分类模型 157

7.2.1 分类模型的设计示例 158

7.2.2 分类算法 159

7.3 KNN 159

7.3.1 使用KNN进行分类的示例 159

7.3.2 数据归一化 161

7.3.3 应用KNN算法 163

7.4 决策树 165

7.4.1 使用决策树进行分类的示例 165

7.4.2 预测结果比较 166

7.5 小结 167

7.6 练习 167

第8章 聚类分析 171

8.1 技术要求 171

8.2 聚类模型 171

8.2.1 使用二维数据集的聚类示例 172

8.2.2 使用三维数据集的聚类示例 175

8.3 k-means算法 176

8.3.1 使用k-means对二维数据集进行聚类 178

8.3.2 使用k-means对多于二维的数据集进行聚类 182

8.3.3 质心分析 183

8.4 小结 185

8.5 练习 185

第3篇 预 处 理

第9章 数据清洗1级—清洗表 189

9.1 技术要求 189

9.2 数据清洗的工具和目标 189

9.2.1 数据分析目标 190

9.2.2 数据分析工具 190

9.3 数据清洗级别 190

9.3.1 数据清洗1级—清洗表 191

9.3.2 数据清洗2级—重组和重制表 191

9.3.3 数据清洗3级—评估和纠正值 191

9.3.4 将分析的目标和工具映射到数据清洗级别 191

9.4 数据清洗1级—清洗表的示例 193

9.4.1 示例1—不明智的数据收集 193

9.4.2 示例2—重新索引 196

9.4.3 示例3—直观但很长的列标题 198

9.5 小结 200

9.6 练习 200

第10章 数据清洗2级—解包、重组和重制表 203

10.1 技术要求 203

10.2 示例1—解包数据并重新构建表 203

10.2.1 解包FileName 204

10.2.2 解包Content 207

10.2.3 重制一个新表以进行可视化 208

10.2.4 可视化绘图 211

10.3 示例2—重组表 211

10.4 示例3—执行1级和2级数据清洗 214

10.4.1 执行1级清洗 216

10.4.2 执行2级清洗 217

10.4.3 填充DA 218

10.4.4 填充IA1 219

10.4.5 填充IA2 220

10.4.6 填充IA3 222

10.4.7 进行分析—使用线性回归创建预测模型 223

10.5 小结 224

10.6 练习 224

第11章 数据清洗3级—处理缺失值、异常值和误差 227

11.1 技术要求 227

11.2 缺失值 228

11.2.1 检测缺失值 229

11.2.2 检测缺失值的示例 229

11.2.3 缺失值的原因 231

11.2.4 缺失值的类型 232

11.2.5 缺失值的诊断 232

11.2.6 诊断NO2_LOCATION_A中的缺失值 233

11.2.7 根据温度诊断缺失值 233

11.2.8 根据所有数值特性诊断缺失值 236

11.2.9 根据周工作日诊断缺失值 237

11.2.10 根据所有分类特性诊断缺失值 240

11.2.11 诊断NO2_LOCATION_B中的缺失值 241

11.2.12 诊断NO2_LOCATION_C中的缺失值 244

11.3 处理缺失值 246

11.3.1 第一种方法—保持缺失值不变 246

11.3.2 第二种方法—删除具有缺失值的数据对象 247

11.3.3 第三种方法—删除具有缺失值的特性 247

11.3.4 第四种方法—估计和填补缺失值 248

11.3.5 选择正确的方法处理缺失值 248

11.3.6 处理缺失值示例1 250

11.3.7 处理缺失值示例2 251

11.3.8 处理缺失值示例3 252

11.3.9 处理缺失值示例4 253

11.3.10 处理缺失值示例5 254

11.4 异常值 258

11.4.1 检测异常值 258

11.4.2 单变量异常值检测 258

11.4.3 单个数值特性异常值检测示例 259

11.4.4 单个分类特性异常值检测示例 262

11.4.5 双变量异常值检测 262

11.4.6 跨越两个数值特性检测异常值的示例 262

11.4.7 跨越两个分类特性检测异常值的示例 263

11.4.8 跨越数值-分类两个特性检测异常值的示例 264

11.4.9 多变量异常值检测 266

11.4.10 使用聚类分析跨越4个特性检测异常值的示例 266

11.4.11 时间序列异常值检测 267

11.5 处理异常值 268

11.5.1 第一种方法—保持原样 268

11.5.2 第二种方法—替换为上限或下限 269

11.5.3 第三种方法—执行对数变换 269

11.5.4 第四种方法—删除具有异常值的数据对象 270

11.5.5 选择处理异常值的恰当方法 270

11.5.6 处理异常值示例1 270

11.5.7 处理异常值示例2 272

11.5.8 处理异常值示例3 273

11.5.9 处理异常值示例4 281

11.5.10 处理异常值示例5 282

11.6 误差 286

11.6.1 误差类型 286

11.6.2 处理误差 287

11.6.3 检测系统误差 287

11.6.4 系统误差和正确异常值的示例 287

11.7 小结 291

11.8 练习 291


前言/序言

  数据预处理是数据可视化、数据分析和机器学习的第一步,它将为分析和预测模型准备数据以帮助分析师获得最佳见解。分析师在执行数据分析、数据可视化和机器学习项目时,大约90%的时间都花在数据预处理上。

  本书将从多个角度为读者提供最佳的数据预处理技术。读者将了解数据预处理的不同技术和分析过程(包括数据收集、数据清洗、数据集成、数据归约和数据转换等),并掌握如何使用开源Python编程环境来实现它们。

  本书将全面阐述数据预处理及其原因和方法,并帮助读者识别数据分析可以带来的更有效的决策机会。本书还展示了数据管理系统和技术在有效分析中的作用,以及如何使用API来提取数据。

  通读完本书之后,读者将能够使用Python来读取、操作和分析数据;执行数据清洗、集成、归约和转换技术;处理异常值或缺失值,以有效地为分析工具准备数据。

本书读者

  希望对大量数据进行预处理和数据清洗的数据分析师、商业智能专业人士、工程本科生和数据爱好者。本书假设读者具备基本的编程技能(例如使用变量、条件和循环),以及Python初级知识和简单的分析经验。

内容介绍

  本书分为4篇,共18章。具体内容安排如下。

* 第1篇:技术基础,包括第1章~第4章。

> 第1章“NumPy和Pandas简介”,介绍了用于数据操作的3个主要模块中的两个,并使用真实的数据集示例来展示它们的相关功能。

> 第2章“Matplotlib简介”,介绍了用于数据操作的3个模块中的最后一个,并使用了真实的数据集示例来展示其相关功能。

> 第3章“数据”,提出了“数据”的技术定义,并介绍了数据预处理所需的数据概念和语言,包括通用的数据结构、数据值的类型、信息与模式等。

> 第4章“数据库”,提出了“数据库”的技术定义,解释了不同类型的数据库的作用,并演示了如何连接数据库并从中提取数据。

* 第2篇:分析目标,包括第5章~第8章。

> 第5章“数据可视化”,演示了一些使用数据可视化的分析示例,让读者了解数据可视化的潜力。

> 第6章“预测”,介绍了预测模型并演示了如何使用线性回归和多层感知器(MLP)。

> 第7章“分类”,介绍了分类模型并演示了如何使用决策树和K近邻(KNN)算法。

> 第8章“聚类分析”,介绍了聚类模型并演示了如何使用K-Means算法。

* 第3篇:预处理,包括第9章~第14章。

> 第9章“数据清洗1级—清洗表”,介绍了3个不同级别的数据清洗,并讨论了具体的数据清洗1级示例。

> 第10章“数据清洗2级—解包、重组和重制表”,通过3个示例介绍了数据清洗2级的具体内容。

> 第11章“数据清洗3级—处理缺失值、异常值和误差”,介绍了缺失值、异常值和误差的检测和处理技术。

> 第12章“数据融合与数据集成”,介绍了集成不同数据源的技术,详细探讨了数据集成面临的6个挑战及其解决方法。

> 第13章“数据归约”,介绍了数据归约的目标和类型(样本归约和特征归约)。对于样本归约,提供了随机抽样和分层抽样示例;对于特征归约(也称为降维),介绍了线性回归、决策树、随机森林、暴力计算、主成分分析和函数型数据分析等方法。

> 第14章“数据转换”,介绍了数据转换和按摩,通过示例讨论了归一化和标准化、二进制编码、排序转换和离散化、特性构造、特征提取、对数转换、平滑、聚合和分箱等数据转换操作在分析上的意义。

* 第4篇:案例研究,包括第15章~第18章。

> 第15章“案例研究1—科技公司中员工的心理健康问题”,介绍了具体的分析问题并讨论了如何预处理数据以解决它。

> 第16章“案例研究2—新冠肺炎疫情住院病例预测”,介绍了一个非常有意义的热点分析问题并讨论了如何预处理数据以解决该问题。

> 第17章“案例研究3—美国各县聚类分析”,针对美国大选基于居住地分裂投票的现象提出了一个颇有意思的分析问题,并讨论了如何对数据进行预处理以解决该问题。

> 第18章“总结、实际案例研究和结论”,介绍了一些可能的实践案例,读者可以使用这些案例进行更深入的学习并创建分析组合工具包。

充分利用本书

  本书假定读者具备基本的编程技能,并掌握了Python的初级知识,其他知识都可以从本书的开头开始学习。

  Jupyter Notebook是学习和练习编程和数据分析的优秀用户界面。它可以使用Anaconda Navigator 轻松下载和安装。读者可以访问以下页面进行安装。


  

  本书涵盖的软硬件和操作系统需求如表P.1所示。

表P.1 本书涵盖的软硬件和操作系统需求

本书涵盖的软硬件

操作系统需求

使用Jupyter Notebook的Python

Windows或macOS

  虽然Anaconda已经安装了本书使用的大部分模块,但读者还需要安装一些其他模块,如Seaborn和Graphviz。不过不必担心,因为在使用之前本书将指导读者如何进行安装。

  建议读者自己输入代码或从本书的GitHub存储库获得代码(下文将提供本书配套GitHub存储库链接),这样可以帮助你避免与复制和粘贴代码相关的任何潜在错误。

  在学习的同时,可以将每一章的代码保存在一个文件中,形成学习存储库,以便进行更深入的学习并在实际项目中使用。Jupyter Notebook尤其适合此用途,因为它允许读者将代码和笔记保存在一起。

下载示例代码文件


  

  如果代码有更新,那么它将在该GitHub存储库中更新。

下载彩色图像

  我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。可通过以下地址下载。


本书约定

  本书中使用了许多文本约定。

  (1)CodeInText:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄等。以下段落就是一个示例。

  

  对于本次练习,你需要使用一个新数据集:billboard.csv。可访问以下网址以查看当天最新的歌曲排名。


  

  (2)有关代码块的设置如下。

  

from ipywidgets import interact, widgets

interact(plotyear,year=widgets.

IntSlider(min=2010,max=2019,step=1,value=2010))

  

  (3)要突出代码块时,相关内容将加粗显示。

  

Xs_t.plot.scatter(x='PC1',y='PC2',c='PC3',sharex=False,

vmin=-1/0.101, vmax=1/0.101,

figsize=(12,9))

x_ticks_vs = [-2.9*4 + 2.9*i for i in range(9)]

  

  (4)术语或重要单词采用中英文对照形式给出,在括号内保留其英文原文。示例如下。

  

  由于这些差异,分类和预测被称为监督学习(supervised learning,也称为有监督学习),而聚类则被称为无监督学习(unsupervised learning)。

  

  (5)对于界面词汇或专有名词将保留英文原文,在括号内添加其中文翻译。示例如下。

  

  由于我们只有两个维度来执行聚类,因此可以利用散点图根据所讨论的两个特性—Life_Ladder(生活阶梯)和Perceptions_of_corruption(腐败程度感知)来可视化所有国家/地区之间的关系。

  

  (6)本书还使用了以下两个图标。

  表示警告或重要的注意事项。

  表示提示或小技巧。