引子
想象一下,你每周都要手动重复同一过程,比如从多个来源复制数据并粘贴到一个电子表格中,用于后续处理。这项任务可能每周都需要花费一两个小时。但当你用脚本把这项任务自动化之后,它可能只需要 30 秒就可以完成!
再想象一下,之前你无法处理某种格式的数据,但你现在能对数据进行格式转换,完成之前无法完成的任务。面对过于混乱、数据量过大时,你却可以更有效地从中采集那些之前认为不可用的数据信息。
将更多的任务自动化会节省你的时间,让你留下时间去做点其他事情。耗时少,效率高!想必这是每一个程序员工作时想要达到的状态。每一行代码都光速一般的被他们生产出来,稍有停顿可能就错过了改变世界的机会!
可以说程序员的时间真是比CPU还宝贵!那有没有既不浪费时间,又能提高数据处理技术的方法呢?我推荐大家利用 Python 编程语言,可以将噪声数据轻松快速地转换成可用的报告。不再只是使用电子表格,就可以轻松搞定!
Derek Willis,ProPublica 新闻应用开发者,OpenElections 联合创始人。他曾经这样评价过一本书。“经常有记者问我:‘我很擅长使用电子表格,但下一步应该学些什么?’这本书给出了一个很有价值的答案。虽然这本书不仅仅面向新闻业的读者,但它给出了一条清晰的路径,对于任何使用电子表格并且想知道如何提高技能的人来说,都可以沿着这条路径来学习获取、清洗和分析数据的方法。它涵盖了所有内容,从如何加载并检查文本文件到自动化屏幕抓取,再到执行数据分析与结果可视化的新的命令行工具。
“我曾经使用陈旧的方式来分析数据并寻找其中的意义:首先使用电子表格,然后转向关系型数据库和绘图程序。它们仍然是很有用的工具,但都没有充分利用自动化功能,让用户能够处理更多数据并复制其工作。它们也不能与互联网上的各种数据无缝连接。在这些工具旁边还需要添加上一种编程语言。虽然我现在已经使用 Python 和其他语言一段时间了,但这种使用漫无计划,并不系统。
“无论是数据处理还是工具的复杂性,在过去 20 年中都在不断发展,这使得寻找一套常用技术更为重要。不断增长的可用数据(结构化的和非结构化的)以及可以用于存储和分析的数据量,都改变了数据分析的可能性:许多困难的问题现在变得更容易回答了,之前看起来不可能的一些问题也已能力可及。我们需要一种‘胶水’,可以将数据生态系统的各个组成部分,从 JSON API 到数据过滤与清洗,再到创建图表来讲故事,全部连接在一起。
这种‘胶水’就是 Python 及其用于处理数据的强大的工具和库。如果你一直感觉电子表格(甚至关系型数据库)无法回答你想要提出的问题,或者除这些工具之外你已经准备进一步学习,那么这本书非常适合你。我一直在等待这本书的出现。”
这本书就是 Data Wrangling with Python: Tips and Tools to Make Your Life Easier ,而它的中文版《Python数据处理》也已经出版上市了啦~
作者:Jacqueline Kazil,Katharine Jarmul
译者:张亮 ,吕家明
定价:99.00元
电子书:49.99元
* 快速了解Python基本语法、数据类型和语言概念
* 概述数据的获取与存储方式
* 清洗数据并格式化,以消除数据集中的重复值与错误
* 利用新的Python库和技术对数据集进行探索与分析
* 使用Python解决方案将整个数据处理过程自动化
这本书将带领大家完成数据获取、数据清洗、数据呈现、数据规模化和自动化的过程。目标是教会你轻松处理数据的方法,这样大家就可以花更多的时间专注于内容和分析。
书中克服现有工具的局限,将手动处理过程替换为简洁、易读的 Python 代码。看完这本书后,你能够将数据处理过程自动化,定期执行文件编辑和清洗任务,获取并解析你之前无法获取的数据,还能处理数据量更大的数据集。
1. 什么是数据处理
数据处理是指将杂乱的或未加工的数据源转换成有用的信息。先寻找原始数据源,并判断其价值:这些数据集的数据质量有多好?它们与你的目标是否相关?能否找到更好的数据源?在对数据进行解析与清洗后,数据集变得可用,这时你可以利用工具和方法(如 Python 脚本)来帮你分析数据,并以报告的形式展示结果。这样你可以将无人问津的数据变得清晰可用。
2. 为什么要清洗数据
数据清洗并不是最迷人的工作,却是数据处理的重要组成部分。要想成为数据清洗专家,需要严谨的态度,以及对所研究领域全面系统的知识。学会如何正确地清洗数据并汇总,可以让你在研究领域中脱颖而出。
Python 的设计很适合数据清洗,它可以创建函数处理相同的规律,减少重复性工作。根据我们目前所学的代码知识,学会用脚本和代码处理重复性的问题,可以节省数小时的体力劳动,只需要运行一次脚本就可以完成。
对于你获取的数据,有些可能格式良好,方便使用。如果真是这样的话,那你很幸运!大部分数据即使清洗过,也会有格式不一致和可读性的问题,例如首字母缩写或描述性标题不匹配,特别是数据来自多个数据集。除非你在数据格式化和标准化上花点工夫,否则数据不可能正确合并,也就没有用处了。
清洗数据可以让数据更容易存储、搜索和复用。想象一个数据集中有很多列(或字段),应该保存成特定的数据类型,比如日期、号码或电子邮件地址。如果你能将预期格式标准化,清洗或删除不合格的数据,就可以保证数据的一致性,在以后需要查询数据集时也不用做大量工作。
如果你想展示你的发现并发布数据,就要发布清洗过的版本。这样其他数据处理人员就能轻松导入并分析数据。你还可以在发布最终数据集的同时发布原始数据,并说明你是如何一步步清洗数据并将其归一化的。
在清洗数据的过程中,我们希望记下清洗过程的每一步,这样就可以在研究中为我们的数据集及其使用方法申辩,同时也可以方便我们自己以及其他人的后续使用。通过记录清洗过程,在遇到新的数据时我们可以重复整个过程。
3. 为什么选择Python
有那么多种编程语言,为什么选择使用 Python呢?你可能听说过以下这些语言中的一种或多种:R、MATLAB、Java、C/C++、HTML、JavaScript 和Ruby,这取决于你的专业背景。这些语言都有一种或多种主要用途,有些还可以用于数据处理。你也可以用 Excel等程序进行数据处理。用 Excel 和 Python 编程,通常会得到相同的结果,但其中一种语言的效率更高。
然而有时候,像 Excel 这样的程序无法完成任务。我们选择 Python 而不是其他语言,是因为 Python 很容易上手,处理数据的过程也简单明了。Python 除了上述作为语言的优点,Python 社区还是最开放和最乐于助人的社区之一。世上没有完美的社区,但 Python社区为新人创造了一个良好的环境:有时会有本地的教程、免费课堂、线下聚会等,有时还会举办大型会议,人们聚在一起解决问题并分享知识。
拥有大型社区的好处显而易见——有人能回答你的问题,有人能为你的代码或模块的结构出谋划策,有人能让你学习借鉴,还有共享代码供你在其之上构建自己的代码。社区因成员的支持而存在。刚开始使用 Python 时,你从社区中得到的帮助会多于你的付出。但即使你不是专家,也可以为社区做很多贡献。我们鼓励你分享你的问题和解决方法。这会帮到下一个遇到相同问题的人,你也可能会在开源工具中发现需要处理的 bug。
4. 内容前瞻
第1、2章,为你简单介绍Python。第3、4、 5 章,介绍了多种方法,用于通过编程的方式获取数据并对其进行格式转换。还介绍了如何从 CSV、Excel、XML、JSON 和 PDF 文件中提取数据。第6 章,讲的是在获取数据时如何与不同的人打交道,并稍稍提到合法性的问题。
第 7 、8 章中你将学习如何解析与清洗数据。你既可以使用 Python,也可以探索其他开源工具。在讨论可能遇到的数据问题时,你将学会应该选择哪种方法清洗数据:是写一个清洗脚本,还是使用现成的方法呢。在第 7 章中,我们还将讲到如何处理常见的错误,如重复记录、离群值与格式化问题。第9章,对数据进行了探索和分析。第 10 章中,你将学习在网站上展示与组织数据的基本方法。
第 11、12、13 章,你将会学习如何从网站和 API 中提取数据。在取得数据并转换格式后,你将开始初步的数据探索。你将会探寻数据中可能隐藏的所有故事,同时判断哪些故事有用,哪些故事可以舍弃。你还可以把数据分组,观察各组之间的变化趋势。然后还可以将数据集合并,寻找其中的关联,发现更大的趋势,并发现潜在的矛盾之处。在这一过程中,你将学习如何清洗数据,发现并解决隐藏在数据集中的问题。
第 14 章,将使数据分析过程规模化,让你可以在更短的时间内处理更多的数据。我们将对存储与获取数据的方法进行分析,并研究在云中使数据规模化的方法。还将讨论如何完成一次性的项目,并使其能够自动完成。通过自动化过程,你可以将一次性的特殊报告变成年度报告。这种自动化可以让你专注于改善讲故事的过程,继续讲下一个故事,或者至少续杯咖啡。
5. 赞誉满满
“所有新手数据科学家、数据工程师或其他技术方面的数据专家都应该读一读这本实践指南。数据处理领域正需要这样一本书,真希望我第一次开始用 Python 处理数据时就能有它指导。”
——Tyrone Grandison 博士,Proficiency Labs Intl. CEO
“数据处理不仅仅是编写代码,还包括更多内容,这本精心编写的书可以告诉你需要知道的一切内容。在新闻业需要更多数据专家的时代,这本书是循序渐进的宝贵资源。”
——Randy Picht,密苏里大学新闻学院 Donald W. Reynolds 新闻研究所执行理事
“这是一个很棒的概论课程,讲述了我们用数据讲故事时所做的一切,(真的是一切!)既包括了基础知识,也涵盖了最新技术。强烈推荐!”
——Brian Boyer,美国全国公共广播电台(NPR)可视化编辑
“这是一本实用的、通俗易懂的指南,你可以从中学习一些常见的不得不用代码完成的任务:查找、提取、整理和检查数据。”
——Chrys Wu,技术专家
6. 文章目录
第1章 Python简介 1
1.1 为什么选择Python 4
1.2 开始使用Python 4
1.3 小结 13
第2章 Python基础 14
2.1 基本数据类型 15
2.2 数据容器 18
2.3 各种数据类型的用途 23
2.4 有用的工具:type、dir和help 28
2.5 综合运用 31
2.6 代码的含义 32
2.7 小结 33
第3章 供机器读取的数据 34
3.1 CSV数据 35
3.2 JSON数据 41
3.3 XML数据 44
3.4 小结 56
第4章 处理Excel文件 58
4.1 安装Python包 58
4.2 解析Excel文件 59
4.3 开始解析 60
4.4 小结 71
第5章 处理PDF文件,以及用Python解决问题 73
5.1 尽量不要用PDF 73
5.2 解析PDF 的编程方法 74
5.3 利用pdfminer解析PDF 78
5.4 学习解决问题的方法 92
5.5 不常见的文件类型 101
5.6 小结 101
第6章 数据获取与存储 103
6.1 并非所有数据生而平等 103
6.2 真实性核查 104
6.3 数据可读性、数据清洁度和数据寿命 105
6.4 寻找数据 105
6.5 案例研究:数据调查实例 111
6.6 数据存储 113
6.7 数据库简介 113
6.8 使用简单文件 118
6.9 其他数据存储方式 119
6.10 小结 119
第7章 数据清洗:研究、匹配与格式化 121
7.1 为什么要清洗数据 121
7.2 数据清洗基础知识 122
7.3 小结 151
第8章 数据清洗:标准化和脚本化 153
8.1 数据归一化和标准化 153
8.2 数据存储 154
8.3 找到适合项目的数据清洗方法 156
8.4 数据清洗脚本化 157
8.5 用新数据测试 170
8.6 小结 172
第9章 数据探索和分析 173
9.1 探索数据 173
9.2 分析数据 193
9.3 小结 197
第10章 展示数据 199
10.1 避免讲故事陷阱 199
10.2 可视化数据 201
10.3 展示工具 213
10.4 发布数据 213
10.5 小结 219
第11章 网页抓取:获取并存储网络数据 221
11.1 抓取什么和如何抓取 221
11.2 分析网页 223
11.3 得到页面:如何通过互联网发出请求 237
11.4 使用BeautifulSoup读取网页 238
11.5 使用lxml读取网页 241
11.6 小结 249
第12章 高级网页抓取:屏幕抓取器与爬虫 251
12.1 基于浏览器的解析 251
12.2 爬取网页 266
12.3 网络:互联网的工作原理,以及为什么它会让脚本崩溃 281
12.4 变化的互联网(或脚本为什么崩溃) 283
12.5 几句忠告 284
12.6 小结 284
第13章 应用编程接口 286
13.1 API特性 287
13.2 一次简单的TwitterREST API数据拉取 290
13.3 使用TwitterREST API进行高级数据收集 292
13.4 使用Twitter流式API进行高级数据收集 295
13.5 小结 297
第14章 自动化和规模化 298
14.1 为什么要自动化 298
14.2 自动化步骤 299
14.3 什么会出错 301
14.4 在哪里自动化 302
14.5 自动化的特殊工具 303
14.6 简单的自动化 313
14.7 大规模自动化 317
14.8 监控自动化程序 319
14.9 没有万无一失的系统 328
14.10 小结 328
第15章 结论 330
15.1 数据处理者的职责 330
15.2 数据处理之上 331
15.3 下一步做什么 33
扫一扫,京东购~
扫一扫,查看Python书单~
本周特价电子书
《图解物联网》
http://www.ituring.com.cn/book/1803
《R语言实战(第2版)》
http://www.ituring.com.cn/book/1699
《深入浅出Node.js》
http://www.ituring.com.cn/book/1290
福利到!!!
本周会给小伙伴们送出3本《Python数据处理》。只要您7月21日17:00前在评论留言说说Python的哪种特性让你觉得最为惊艳,或者最为头疼。精选留言挑出3位小伙伴赠送本期的书籍哦~ 另外还加送1本给最佳问题解决者!留言中成功帮助某位有技术问题的小伙伴解决问题的,将获得这本赠书~有技术问题的你们还等什么!速速扔出来~
题图来自电影《神偷奶爸》
点击【阅读原文】查看Python书单!