本书从实用的角度出发,采用理论与实践相结合的方式,介绍样本数据处理的基础知识,力求培养读者使用Python语言及Kettle软件进行数据处理的能力。全书内容分别为数据预处理概述、Kettle工具的初步使用、数据的导入与导出、数据清洗、数据标注、Kettle作业设计、基于Kettle构建数据仓库、基于Python的数据导入与导出、基于Python的数据整理。 本书作为人工智能学科相关的样本数据处理技术的入门教材,目的不在于是覆盖样本数据处理技术的所有知识点,而是介绍样本数据处理的主要应用,使读者了解样本数据处理的基本构成,以及如何应对不同数据类型的数据预处理工作。为了增强实践效果,本书中引入了多个基础技术案例及综合实践案例,以帮助读者了解样本数据处理涉及的基本技术的知识和技能。 本书可作为高等院校数据科学与大数据技术、计算机、信息管理等相关专业课程的教材,也可供对样本数据处理技术感兴趣的读者阅读。
许桂秋,运营总监。2000年9月—2004年6月,厦门大学,计算机科学与技术专业学习,获工学学士;2007年8月—2011年4月,中国石油天然气股份有限公司,项目经理,工程师;2011年6月—2016年7月,曙光信息产业股份有限公司,项目经理,工程师;2016年7月—至今,中科瑞翼(北京)教育科技有限公司,运营总监。主要著作出版情况:《大数据导论》、《Python编程基础与应用》、《NoSQL数据库原理与应用》、《数据挖掘与机器学习》等9本系列教材,浙江科技出版社,2019年。
第1章 数据预处理概述 1
1.1 数据预处理的背景与目的 1
1.1.1 数据预处理的背景:数据质量 1
1.1.2 数据预处理的目的 3
1.2 数据预处理的流程 3
1.2.1 数据清洗 3
1.2.2 数据集成 5
1.2.3 数据变换 6
1.2.4 数据归约 9
1.2.5 数据预处理的注意事项 14
1.3 数据预处理的工具 14
本章习题 15
第2章 Kettle工具的初步使用 16
2.1 Kettle的安装 16
2.1.1 Java的安装 16
2.1.2 Kettle的下载安装与Spoon的启动 20
2.2 Kettle的使用 21
2.2.1 转换的基本概念 21
2.2.2 第一个转换案例 23
本章习题 42
第3章 数据的导入与导出 43
3.1 基于文件的数据导入与导出 43
3.1.1 文本文件的导入与导出 43
3.1.2 文本文件的导入与导出案例 45
3.1.3 Excel文件的导入与导出 51
3.1.4 Excel文件的导入与导出案例 51
3.1.5 XML文件的导入与导出 59
3.1.6 XML文件的导入与导出案例 59
3.1.7 JSON文件的导入与导出 64
3.1.8 JSON文件的导入与导出案例 65
3.2 基于数据库的数据导入与导出 69
3.2.1 关系数据库的数据导入与导出 69
3.2.2 MySQL数据库的数据导入与导出案例 71
3.3 基于Web的数据导入与导出 78
3.3.1 HTML数据的导入与导出 78
3.3.2 HTML数据的导入与导出案例 79
3.3.3 基于HTTP GET请求的导入与导出 83
3.3.4 基于HTTP GET请求的导入与导出案例 83
3.4 基于CDC变更数据的导入与导出 86
3.4.1 基于源数据的CDC 86
3.4.2 基于源数据的CDC案例 87
3.4.3 基于触发器的CDC 98
3.4.4 基于触发器的CDC案例 99
3.4.5 基于快照的CDC 109
3.4.6 基于快照的CDC案例 109
3.4.7 基于日志的CDC 113
3.4.8 基于日志的CDC案例 113
本章习题 116
第4章 数据清洗 117
4.1 数据清洗概述 117
4.1.1 Kettle常用的数据清洗步骤 117
4.1.2 字符串清理 119
4.1.3 字段清理 123
4.1.4 使用参照表清理数据 130
4.1.5 数据校验 136
4.2 数据排重 141
4.2.1 如何识别重复数据 141
4.2.2 去除完全重复数据 142
4.2.3 去除不完全重复数据 144
4.3 使用脚本组件进行数据清洗 147
4.3.1 使用JavaScript代码组件清理数据 147
4.3.2 使用正则表达式组件清理数据 149
4.3.3 使用其他脚本组件清理数据 152
本章习题 156
第5章 数据标注 157
5.1 数据标注简介 157
5.1.1 数据标注是什么 157
5.1.2 数据标注分类简介 158
5.1.3 数据标注流程简介 159
5.2 数据标注分类 160
5.2.1 图像标注 161
5.2.2 文本标注 164
5.2.3 语音标注 166
5.3 数据标注质量检验 167
5.3.1 数据标注质量的影响 167
5.3.2 数据标注的质量标准 169
5.3.3 数据标注质量检验方法 172
5.4 图像数据标注实战 175
5.4.1 车辆车牌标注 175
5.4.2 遥感影像标注 180
5.4.3 医疗影像标注 184
5.4.4 行人数据标注 188
5.4.5 基于行人标注数据集的行人检测 192
5.5 文本标注实战 198
本章习题 207
第6章 Kettle作业设计 208
6.1 作业的概念及组成 209
6.1.1 作业项 209
6.1.2 跳 210
6.1.3 注释 210
6.2 作业的执行方式 210
6.2.1 回溯 210
6.2.2 多路径和回溯 211
6.2.3 并行执行 211
6.3 作业的创建及常用作业项 212
6.3.1 创建作业 213
6.3.2 “START”作业项 213
6.3.3 “作业”作业项 213
6.3.4 “转换”作业项 215
6.4 变量 216
6.4.1 定义变量 216
6.4.2 使用变量 218
6.5 监控 218
6.5.1 日志 219
6.5.2 邮件通知 220
6.6 命令行启动 221
6.7 作业实验 223
本章习题 252
第7章 基于Kettle构建数据仓库 253
7.1 数据仓库的介绍 253
7.1.1 数据仓库的起因 253
7.1.2 数据仓库的发展 254
7.1.3 数据仓库的定义 255
7.1.4 数据仓库的特点 255
7.1.5 数据仓库的结构 255
7.1.6 数据仓库建模 256
7.1.7 数据仓库与ETL的关系 257
7.2 构建维度表 258
7.2.1 管理各种键 258
7.2.2 维度表的加载 262
7.2.3 缓慢变化维度 263
7.3 构建事实表 268
7.3.1 批量加载 268
7.3.2 查找维度 271
7.3.3 事实表的处理 271
本章习题 280
第8章 基于Python的数据导入与导出 281
8.1 Pandas 281
8.1.1 Series 282
8.1.2 DataFrame 284
8.2 文本文件的导入与导出 286
8.2.1 导入CSV文件 286
8.2.2 导出CSV文件 290
8.2.3 JSON格式数据的导入与导出 291
8.3 Excel文件的导入与导出 292
8.4 数据库的导入与导出 292
8.4.1 关系数据库的导入与导出 293
8.4.2 非关系数据库的导入与导出 294
本章习题 297
第9章 基于Python的数据整理 298
9.1 合并多个数据集 298
9.1.1 使用键进行DataFrame合并 298
9.1.2 使用index进行DataFrame合并 302
9.1.3 沿着横轴或纵轴串接 303
9.2 数据重塑 305
9.2.1 多级索引数据的重塑 305
9.2.2 应用pivot方法重塑数据 307
9.3 数据转换 310
9.3.1 移除重复数据 310
9.3.2 利用函数或映射进行数据转换 312
9.3.3 值转换 312
9.3.4 重命名轴索引 313
9.3.5 离散化和面元划分 314
9.3.6 检测或过滤异常值 317
9.3.7 排列和随机采样 318
9.3.8 计算指标/哑变量 319
本章习题 322