Py学习  »  Python

读书笔记 ‖ 《Python数据处理》

图灵教育 • 6 年前 • 651 次点击  

1 背景

《Python数据处理》这本书买了有一段时间了,一直没开始读。最近想入手《Linux就是这个范儿》和《单核工作法》。于是我就下了个命令给自己:本书读完一遍后才可以下新单。于是有了这一篇。

有时候,你需要的只是给自己下个命令。让它开始!


2 本书框架

读书我一般会把前言读好几遍。我觉得这就好像在和作者对话,他会告诉你哪里是重点,哪里是难点,你是否适合读这本书等等。

之后你可以通过概览目录来进一步了解知识点的分布。

就本书而言,它不是一本全面讲解Python基础知识的书,但是作者讲解的知识却足够你开展数据分析使用。 作者从Python安装以及Python的数据结构讲起,然后以从CSV、XML、PDF等不同的数据源获取数据为例,进一步讲解了如何利用Python获取数据,以及如何在学习的过程中自己帮助自己。

全书整体的思路我觉得大致分为如下环节:定义问题、获取并存储数据(官方下载CSV等各类数据、爬虫、API)、清洗数据、分析数据、展示数据、自动化等,通过这些方面的学习最终让你能够明白如何用数据来解决问题。这本书就像一本数据科学大百科全书。

这本书用的Python 2.7,但请务必不要纠结于版本。2.7你能找得到,还有人用;迁移至3.5或更高版本,成本并不大。我们关注“工具”,但更关注使用工具过程中所体验的工作方法和使用工具所要改变的世界。


3 部分重点内容分享

本书的每一章都基本上涵盖了一个话题。接下来把我自己感兴趣的内容和大家分享:


3.1 Python基础(第2章)

这一章中,作者讲到了三种数据容器:变量、列表、字典。我们来一起按照作者的写作思路看看都讲了些什么内容:


3.1.1 是什么,怎么做

讲解每一个概念时,作者基本上是从“这是什么”讲起,然后再引入例子补充,再适当扩充更多相关概念,再引入例子。有时候还会故意引入“错误”的例子让你思考。

前面说过,学会如何阅读错误信息是很重要的,这可以让你明白犯了什么错误,以及如何改正错误。在这个例子中,错误信息指出,dogs is notdefined,意思是我们没有定义过一个叫作 dogs的变量。由于我们没有定义过这个变量,所以 Python不知道我们要调用的是什么。

以“列表”为例,作者写到:列表是具有某种共同关系的一组值。然后她给出如何创建列表的方法,并举了一个例子。

['milk', 'lettuce', 'eggs']

接下来她又举了列表的列表作为更进一步的例子。

3.1.2 小步快跑

作者在讲解时不会一次讲解很多东西。后续讲解其他内容时,她会逐步扩展前面所学知识。在2.3节中,作者就只是介绍了字符串(alberthao.upper()大写、alberthao.strip()截取)、列表(.append、.remove)、字典(.keys)的基本方法,随着后面章节才陆续扩展。

3.1.3 授人以渔

此外,作者还一步一步教会你如何自己探索。本章中作者就通过type、dir、help的介绍,告诉我们怎么了解数据类型,然后了解更多数据类型对应的“方法”。 例如通过dir你可以看到字典所对应的很多方法,动手试一试,help一下。 dir('cat,dog,horse') dir(['cat', 'dog', 'horse']) help(animals.split)

3.1.4 及时引导复习

最后2.5节作者给了一个综合性的习题,让读者亲自创建一个变量、列表、字典,然后制造一个错误。通过这种方法帮助读者巩固练习。

“恭喜!你刚刚学会了如何编程。编程不是死记硬背,相反,编程是在出错时排查并解决错误。”


3.2 从哪里获取数据以及如何存储它们(第6章)

这一章作者讲了从哪里获取数据以及如何存储数据。作者在6.4节列举了按地域和行业提供了很多可以访问的数据源。 例如美国政府、其他各国政府、医疗行业、教育行业等等。

数据如果量不多,可以本地文件存储,如果多,则可以采用数据库。按照数据类型可选择关系型数据库或者非关系型数据库。

这些内容作者都会给你一个大致的入门,并辅之以很多参考资料。内容都不多,但已经足够你开始朝着这个方向走。

我觉得这一章最应该学习的就是她如何提问题。前言中作者提到了这个链接https://www.propublica.org/nerds/item/how-to-ask-programming-questions

我也推荐一篇。

http://lixiaolai.com/2016/06/25/makecs-html-css/

这篇文章中提到了如何提问的一篇文章,底部还有朗读稿。

让我们来看看作者是如何提问的吧:

3.2.1 数据是否可靠

你可以问问自己以下几个问题。

• 如果我有问题或疑虑的话,能够联系上作者本人吗?

• 数据是否定期检查错误并更新?

• 数据里是否包含数据获取方法的信息,是否包含数据获取过程中使用的样本类型?

• 有没有其他数据源可以验证这个数据集?

• 根据我对这个话题了解的所有知识,数据看起来是否可信?

如果你对至少三个问题的回答都是“是”,这说明你走对路了!如果至少对两个问题的回答是“否”, 你可能需要花更多时间寻找可靠的数据。

3.2.2 数据真实性

评价网上发布的内容时,你需要自己仔细斟酌。数据源是否真实?

论证能否令人信服,是否有意义?

证据是否有效?

对这些问题的回答要做综合评价。

3.2.3 数据是否被清洗过

通过详细询问数据是如何采集、报告 并更新的,你可以判断数据是否被清洗过。你应该能够确定以下内容。

• 数据的清洁度有多高?

• 是否有人给出了统计误差率,或者修改了错误的数据条目,或者误报了数据?

• 是否会发布进一步更新,这些更新是否会发送给你?

• 数据采集过程中使用了哪些方法,如何验证这些方法?

3.2.4 数据寿命

你要处理的数据是定期采集并更新的吗?

数据发布和更新的时间计划是什么样的?

了解一个机构更新数据的频率,可以让你判断在未来几年内对该数据的应用能力。

3.2.5 打电话给某个机构寻求帮助前,帮你思考你需要得到什么:

你是如何获取第6 页到第200 页的数据的?

• 是否有其他格式的数据,比如JSON、CSV、XML 或数据库?

• 数据是如何采集的?

• 能否描述一下数据采集的方法?

• 这些缩写是什么意思?

• 数据是否会更新?如何更新?何时更新?

• 是否有其他人能提供更多信息?


3.3 API(应用编程接口)

这一节提供了通过API接口访问数据的方法。由于例子是twitter,国内无法测试,后续还需要找一个国内的API接口试一下。通过API获取数据的大体思路是,通过提供API key和token来获取数据,然后将其转存至数据库。需要注意的是,有的API有访问频率限制。也分实时与否,付费与否。需要再实际练习一下。

https://www.zoomeye.org/api


4 其他工具分享

浏览器Python实验
FreeCodeCamp免费学习营
SQL学习



作者:Jacqueline Kazil,Katharine Jarmul

译者:张亮 ,吕家明
定价:99.00元


  • 教你学会轻松处理数据的方法,将数据处理过程自动化!

  • 全面掌握用Python进行爬虫抓取以及数据清洗与分析的方法,轻松实现高效数据处理!

本书采用基于项目的方法,介绍用Python完成数据获取、数据清洗、数据探索、数据呈现、数据规模化和自动化的过程。

主要内容包括:Python基础知识,如何从CSV、Excel、XML、JSON和PDF文件中提取数据,如何获取与存储数据,各种数据清洗与分析技术,数据可视化方法,如何从网站和API中提取数据。

 “端点的设计、请求的形式、响应数据的设计等,能够学到很多具体的技巧。虽然是很薄的一本书,但实际工作中需要的信息都很好地涵盖到了。”

更多数据书:

http://mp.weixin.qq.com/s/uqR9GuuA2jTq5xcXV_Bz0g


点击阅读原文到京东购买《Python数据处理》


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/g67IP9vrEr
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4285
 
651 次点击