数据清洗是数据挖掘与分析过程中不可缺少的一个环节,但因为数据类型极其复杂,传统的清洗脏数据工作单调乏味且异常辛苦。如果能利用正确的工具和方法,就可以让数据清洗工作事半功倍。
本书从文件格式、数据类型、字符编码等基本概念讲起,通过真实的示例,探讨如何提取和清洗关系型数据库、网页文件和PDF文档中的数据。最后提供了两个真实的项目,让读者将所有数据清洗技术付诸实践,完成整个数据科学过程。
如果你是一位数据科学家,或者从事数据科学工作,哪怕是位新手,只要对数据清洗有兴趣,那么本书就适合你阅读!
第1章 为什么需要清洗数据1
1.1 新视角1
1.2 数据科学过程2
1.3 传达数据清洗工作的内容3
1.4 数据清洗环境4
1.5 入门示例5
1.6 小结9
第2章 基础知识——格式、 类型与编码11
2.1 文件格式11
2.1.1 文本文件与二进制文件11
2.1.2 常见的文本文件格式14
2.1.3 分隔格式14
2.2 归档与压缩20
2.2.1 归档文件20
2.2.2 压缩文件21
2.3 数据类型、空值与编码24
2.3.1 数据类型25
2.3.2 数据类型间的相互转换29
2.3.3 转换策略30
2.3.4 隐藏在数据森林中的空值37
2.3.5 字符编码41
2.4 小结46
第3章 数据清洗的老黄牛——电子表格和文本编辑器47
3.1 电子表格中的数据清洗47
3.1.1 Excel的文本分列功能47
3.1.2 字符串拆分51
3.1.3 字符串拼接51
3.2 文本编辑器里的数据清洗54
3.2.1 文本调整55
3.2.2 列选模式56
3.2.3 加强版的查找与替换功能56
3.2.4 文本排序与去重处理58
3.2.5 Process Lines Containing60
3.3 示例项目60
3.3.1 第一步:问题陈述60
3.3.2 第二步:数据收集60
3.3.3 第三步:数据清洗61
3.3.4 第四步:数据分析63
3.4 小结63
第4章 讲通用语言——数据转换64
4.1 基于工具的快速转换64
4.1.1 从电子表格到CSV65
4.1.2 从电子表格到JSON65
4.1.3 使用phpMyAdmin从SQL
语句中生成CSV或JSON67
4.2 使用PHP实现数据转换69
4.2.1 使用PHP实现SQL到JSON的数据转换69
4.2.2 使用PHP实现SQL到CSV的数据转换70
4.2.3 使用PHP实现JSON到CSV的数据转换71
4.2.4 使用PHP实现CSV到JSON的数据转换71
4.3 使用Python实现数据转换72
4.3.1 使用Python实现CSV到JSON的数据转换72
4.3.2 使用csvkit实现CSV到JSON的数据转换73
4.3.3 使用Python实现JSON到CSV的数据转换74
4.4 示例项目74
4.4.1 第一步:下载GDF格式的Facebook数据75
4.4.2 第二步:在文本编辑器中查看GDF文件75
4.4.3 第三步:从GDF格式到JSON格式的转换76
4.4.4 第四步:构建D3图79
4.4.5 第五步:把数据转换成Pajek格式81
4.4.6 第六步:简单的社交网络分析83
4.5 小结84
第5章 收集并清洗来自网络的数据85
5.1 理解HTML页面结构85
5.1.1 行分隔模型86
5.1.2 树形结构模型86
5.2 方法一:Python和正则表达式87
5.2.1 第一步:查找并保存实验用的Web文件88
5.2.2 第二步:观察文件内容并判定有价值的数据88
5.2.3 第三步:编写Python程序把数据保存到CSV文件中89
5.2.4 第四步:查看文件并确认清洗结果89
5.2.5 使用正则表达式解析HTML的局限性90
5.3 方法二:Python和BeautifulSoup90
5.3.1 第一步:找到并保存实验用的文件90
5.3.2 第二步:安装BeautifulSoup91
5.3.3 第三步:编写抽取数据用的Python程序91
5.3.4 第四步:查看文件并确认清洗结果92
5.4 方法三:Chrome Scraper92
5.4.1 第一步:安装Chrome扩展Scraper92
5.4.2 第二步:从网站上收集数据92
5.4.3 第三步:清洗数据94
5.5 示例项目:从电子邮件和论坛中抽取数据95
5.5.1 项目背景95
5.5.2 第一部分:清洗来自Google Groups电子邮件的数据96
5.5.3 第二部分:清洗来自网络论坛的数据99
5.6 小结105
第6章 清洗PDF文件中的数据106
6.1 为什么PDF文件很难清洗106
6.2 简单方案——复制107
6.2.1 我们的实验文件107
6.2.2 第一步:把我们需要的数据复制出来108
6.2.3 第二步:把复制出来的数据粘贴到文本编辑器中109
6.2.4 第三步:轻量级文件110
6.3 第二种技术——pdfMiner111
6.3.1 第一步:安装pdfMiner111
6.3.2 第二步:从PDF文件中提取文本111
6.4 第三种技术——Tabula113
6.4.1 第一步:下载Tabula113
6.4.2 第二步:运行Tabula113
6.4.3 第三步:用Tabula提取数据114
6.4.4 第四步:数据复制114
6.4.5 第五步:进一步清洗114
6.5 所有尝试都失败之后——第四种技术115
6.6 小结117
第7章 RDBMS清洗技术118
7.1 准备118
7.2 第一步:下载并检查Sentiment140119
7.3 第二步:清洗要导入的数据119
7.4 第三步:把数据导入MySQL120
7.4.1 发现并清洗异常数据121
7.4.2 创建自己的数据表122
7.5 第四步:清洗&字符123
7.6 第五步:清洗其他未知字符124
7.7 第六步:清洗日期125
7.8 第七步:分离用户提及、标签和URL127
7.8.1 创建一些新的数据表128
7.8.2 提取用户提及128
7.8.3 提取标签130
7.8.4 提取URL131
7.9 第八步:清洗查询表132
7.10 第九步:记录操作步骤134
7.11 小结135
第8章 数据分享的最佳实践136
8.1 准备干净的数据包136
8.2 为数据编写文档139
8.2.1 README文件139
8.2.2 文件头141
8.2.3 数据模型和图表142
8.2.4 维基或CMS144
8.3 为数据设置使用条款与许可协议144
8.4 数据发布146
8.4.1 数据集清单列表146
8.4.2 Stack Exchange上的Open Data147
8.4.3 编程马拉松147
8.5 小结148
第9章 Stack Overflow项目149
9.1 第一步:关于Stack Overflow的问题149
9.2 第二步:收集并存储Stack Overflow数据151
9.2.1 下载Stack Overflow数据151
9.2.2 文件解压152
9.2.3 创建MySQL数据表并加载数据152
9.2.4 构建测试表154
9.3 第三步:数据清洗156
9.3.1 创建新的数据表157
9.3.2 提取URL并填写新数据表158
9.3.3 提取代码并填写新表159
9.4 第四步:数据分析161
9.4.1 哪些代码分享网站最为流行161
9.4.2 问题和答案中的代码分享网站都有哪些162
9.4.3 提交内容会同时包含代码分享URL和程序源代码吗165
9.5 第五步:数据可视化166
9.6 第六步:问题解析169
9.7 从测试表转向完整数据表169
9.8 小结170
第10章 Twitter项目171
10.1 第一步:关于推文归档数据的问题171
10.2 第二步:收集数据172
10.2.1 下载并提取弗格森事件的
数据文件173
10.2.2 创建一个测试用的文件174
10.2.3 处理推文ID174
10.3 第三步:数据清洗179
10.3.1 创建数据表179
10.3.2 用Python为新表填充数据180
10.4 第四步:简单的数据分析182
10.5 第五步:数据可视化183
10.6 第六步:问题解析186
10.7 把处理过程应用到全数据量(非测试用)数据表186
10.8 小结187
《基于ARM Cortex-M4F内核的MSP432 MCU开发实践》内容简介:本书以基于ARM Cortex-M4F内核的MSP432 P401r微控制器为例...
如何选择适合、简单、方便、快速的方法来解决您的网页设计问题?不会HTML、JavaScript、CSS也可轻易完成许多网页功能与特效。本书
智能手机故障检测与维修实战技巧全图解 本书特色本书以手机维修现场检测实操及图解的方式,系统地讲解了维修工具的使用方法、手机电路图读图技能、手机元器件故障检修的检...
《全国交通运输职业院校课程思政优秀案例集》内容简介:本书收录交通运输职业院校课程思政优秀案例48个,其中课程思政典型案例44个
本书是为站长群体编写的一本入门级的书,它的定位是:对网站制作不清楚、对网站程序不了解、想成为一名站长的人。从基本的网站概
《区块链实战》内容简介:本书重点向大家展示了区块链在金融和国际贸易两个领域的落地案例,是一本实际业务落地案例与区块链技术相
Whatdoesittaketobecomeadoctor,andhowdotheykeepushealthy?Learnhowlongdoctorshavet...
《文化的利用和再创造》内容简介:本书以区域宗教为研究对象,考察在儒学文化语境,天主教传入所带来的各种冲击,以及在基础上所形
《数字调制解调基础(双色)》是21世纪电子电气工程师系列之一,主要讲解IT技术中最关键、最基本的调制解调技术,内容深入浅出,通
《森林里的调皮猴》内容简介:“谭旭东乐享慢读系列”收录了著名儿童文学作家谭旭东的数篇优秀佳作,包括儿童诗、童话、散文三个体
本书将复杂的编程概念分解成简单的步骤,简单易懂。作者通过多年的教学经验精心挑选出了有特点的例子,手把手地实例教学。这本书
《中华史纲》内容简介:本书是人民出版社陆续出版的12册本《中国通史》的简本,作者为中国社会科学院荣誉学部委员、近代史所研究员
《卑鄙的圣人:曹操10》内容简介:曹操不可避免地步入暮年,统一天下的目标依旧遥遥无期。大瘟疫毁灭生灵无数、南征孙权再度无功而
PacoHope,是Cigital公司的一名技术经理,《MasteringFreeBsDand0penBsDsecurity》(由O’Reilly出版)的合著者...
《新普惠经济:数字技术如何推动普惠性增长(英文版)》内容简介:本书基于阿里巴巴等的电子商务实践,强调了数字技术对普惠性增长
本书在简要介绍模拟通信原理的基础上,以数字通信原理为重点,讲述通信系统的组成、性能指标、工作原理、性能分析和设计方法。对
《PPT炼成记》一书主要讲解的内容包括:了解真正的PPT是怎样的,懂得PPT的基本理念和操作规则,文字设计和编排,如何利用图片来突
编程的真正挑战不是学习一种语言的语法,而是学习创造性地解决问题,从而构建美妙的应用。《像程序员一样思考》分析了程序员解决
《历史不会终结》内容简介:无论国际风云如何变幻,马克思主义者始终相信:资本主导的逻辑必然导致西方困局。如今这一困局正以新的
ASP Web开发教程 内容简介 本书是专为落实教育部和信息产业部《关于在职业院校开展计算机应用与软件技术专业领域技能型紧缺人才培养培训工作的通知》和《职业院校...