卓迈文档网
当前位置 首页 >专题范文 > 公文范文 >

利用Python进行数据分析(第二版)_部分1(全文完整)

发布时间:2022-08-27 10:20:10 来源:网友投稿

下面是小编为大家整理的利用Python进行数据分析(第二版)_部分1(全文完整),供大家参考。

利用Python进行数据分析(第二版)_部分1(全文完整)

 

 利⽤ Python 进⾏数据分析 中⽂第⼆版译者:SeanCheney来源:https://www.jianshu.com/c/52882df3377a下载本书:http://www.jianshu.com/p/fad9e41c1a42(更新为GitHub链接)下载本书代码:https://github.com/wesm/pydata-book(建议把代码下载下来之后,安装好Anaconda 3.6,在⽬录⽂件夹中⽤Jupyter notebook打开)本书是2017年10⽉20号正式出版的,和第1版的不同之处有:包括Python教程内的所有代码升级为Python 3.6(第1版使⽤的是Python 2.7)更新了Anaconda和其它包的Python安装⽅法更新了Pandas为2017最新版新增了⼀章,关于更⾼级的Pandas⼯具,外加⼀些tips简要介绍了使⽤StatsModels和scikit-learn对有些内容进⾏了重新排版。译者注1:最⼤的改变是把第1版附录中的Python教程,单列成了现在的第2章和第3章,并且进⾏了扩充。可以说,本书第2版对新⼿更为友好了!译者注2:毫⽆疑问,本书是学习Python数据分析最好的参考书。本来想把书名直接译为《Python数据分析》,这样更简短。但是为了尊重第1版的翻译,考虑到继承性,还是⽤⽼书名。这样读过第⼀版的⽼读者可以⽅便的⽤之前的书名检索到第⼆版。作者在写第⼆版的时候,有些⽂字是照搬第⼀版的。所以第⼆版的翻译也借鉴copy了第⼀版翻译:即,如果第⼆版中有和第⼀版相同的⽂字,则copy第⼀版的中⽂译本,觉得不妥的地⽅会稍加修改,剩下的不同的内容就⾃⼰翻译。这样做也是为读过第⼀版

 的⽼读者考虑——相同的内容可以直接跳过。

 目录 前言 1 第 1 章 准备工作 9 第 2 章 Python 语言基础、IPython 及 Jupyter notebook 24 第 3 章 内建数据结构、函数及文件 68 第 4 章 NumPy 基础:数组与向量化计算 114 第 5 章 pandas 入门 166 第 6 章 数据载入、存储及文件格式 225 第 7 章 数据清洗与准备 257 第 8 章 数据规整:连接、联合与重塑 297 第 9 章 绘图与可视化 339 第 10 章 数据聚合与分组操作 376 第 11 章 时间序列 417 第 12 章 高阶 pandas 479 第 13 章 Python 建模库介绍 504 第 14 章 数据分析示例 530 附录 A 高阶 NumPy 593 附录 B 更多 IPython 系统相关内容 638

 前言 第 2 版新内容 本书第 1 版出版于 2012 年,彼时基于 Python 的开源数据分析库(例如 pandas)仍然是一个发展迅速的新事物。在本次更新、拓展的第 2版中,我在一些章节内进行了修改,以解释过去 5 年中发生的不兼容的变更、弃用和一些新特性。此外,我还添加了新内容,用以介绍在 2012 年还不存在或者不成熟的工具。最后,我会避免把一些新兴的或者不太可能走向成熟的开源项目写入本书。我希望本版的读者能够发现本书内容在2020 年或者 2021 年仍然几乎像在 2017 年一样适用。

 第 2 版中的主要更新包括:

 所有的代码,包括把 Python 的教程更新到了 Python 3.6 版本(第 1版中使用的是 Python 2.7)

 更新了 Python 第三方发布版 Anaconda 和其他所需 Python 包的安装指引 更新 pandas 库到 2017 年的最新版 新增一章,关于更多高级 pandas 工具和一些使用提示 新增 statsmodels 和 scikit-learn 的简明使用介绍 除了以上更新内容,我还重新组织了第 1 版的部分重要内容,使本书对新手来说更易于理解。

 本书约定 以下印刷约定将在本书中使用:

 1

 斜体(Italic)

 表示新的术语、URL、email 地址、文件名和文件扩展名。

 等宽字体(Constant width)

 用于程序清单以及段落中的程序元素,例如变量名、函数名、数据库、数据类型、环境变量、表达式和关键字等。

 等宽粗体(Constant width bold)

 表示命令或其他应当由用户键入的文本。

 等宽斜体(Constant width italic)

 表示应当由用户提供的值来替代的文本,或者其他由上下文决定的值。

 本符号表示提示或建议。

 本符号表示一般性说明。

 本符号表示警告。

 使用代码示例 可以通过本书的 GitHub 仓库获取本书每一章中的数据文件和相关材料。GitHub 仓库地址:http://github.com/wesm/pydata-book。

 本书的目的在于帮助你完成工作。一般来说,本书提供的示例代码,你可以在你的程序或文档中使用而无须联系我们获取许可,除非你需要重造大量代码。举例来说,使用本书中的代码段编写程序无须授权许可,但销售或发行 O 扲 eilly 图书的 CD-ROM 代码示例则需要许可。引用本书代码回答问题不需要许可,但在你的产品文档中大量使用本书示例代码则需要许可。

 2

 我们鼓励注明资料来源的行为,但这并不是必需的。来源注明通常包括书名、作者、出版社及 ISBN,例如:“Python for Data Analysis by Wes McKinney(O 扲 eilly). Copyright 2017 Wes McKinney, 978-1-491-95766-0”。

 如果你认为你对本书示例代码的使用超过了正常使用范围或者需要以上介绍的授权许可,请联系 permissions@oreilly.com。

 O"Reilly Safari Safari(前身为 Safari Books Online )是一个会员制的培训、参考网站,服务于企业、政府、教育者和个人。

 会员可以访问数千书籍、培训视频、学习路径、交互教程和超过 250家出版商的企划列表,包括 O"Reilly Media、Harvard Business Review、Prentice Hall Professional、 Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 等。

 更多信息,请访问 http://oreilly.com/safari。

 如何联系我们 对于本书如果有任何意见或疑问,请按照以下地址联系本书出版商。

 美国:

 O"Reilly Media, Inc. 1005 Gravenstein Highway North 3

 Sebastopol, CA 95472 中国:

 北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

 奥莱利技术咨询(北京)有限公司 我们为本书准备了一个网页,用于陈列勘误、示例和其他附加信息。访问地址是:http://bit.ly/python_data_analysis_2e。

 针对本书评论或提出技术问题,请发送邮件至:bookquestions@oreilly.com。

 关于本书的更多信息、课程、会议及新闻,请访问我们的网站:http://www.oreilly.com。

 Facebook 联系我们:http://facebook.com/oreilly Twitter 联系我们:http://twitter.com/oreillymedia YouTube 观看我们的视频:http://www.youtube.com/oreillymedia 致谢 本书是全世界很多人多年来富有成效的讨论、协作和支持的成果。我想对他们中的一些代表致以谢意。

 怀念:John D. Hunter(1968—2012)

 我们亲爱的朋友和同行 John D. Hunter 在经历了一场与结肠癌的战斗后,于 2012 年 8 月 28 日离开了世界。那时正是我完成本书第 1 版最终手稿后不久。

 John 对 Python 科学计算和数据社区的影响之大难以估量,他给我们留下的遗产价值非凡。除了在 2000 年初期开发 matplotlib 之外(那时4

 Python 还没有当下如此流行),他还帮助塑造了一代核心开源开发者的文化,如今这些开发者已经成为 Python 生态系统的顶梁柱,而 Python 生态系统对于现如今的我们来说似乎是理所当然的。

 在 2010 年 1 月,我开源生涯的早期,那时候 pandas 刚刚发布了 0.1版本,我便有幸结识了 John。即便在最黑暗的时期,他的才华和指导仍在帮助我推动 pandas 前进,实现 Python 成为数据分析第一语言的愿景。

 John 与 IPython、Jupyter 项目的先锋 Fernando Pérez、Brian Granger 及其他很多 Python 社区的倡议人联系紧密。我们四人曾经希望共同写作一本书,但只有我个人时间最为自由,所以这个想法被搁置了。我非常确信他会为过去 5 年中我们个人及我们社区所取得的成就感到骄傲。

 第 2 版致谢(2017)

 距离我在 2012 年 7 月完成第 1 版手稿已经 5 年了。很多事情都发生了变化。Python 社区获得了极大的成长,围绕 Python 的开源软件生态系统也十分繁荣。pandas 核心开发者孜孜不倦的付出,使得 pandas 项目高速成长,也使得 pandas 的用户群体遍布 Python 数据科学生态系统的各个角落,没有他们本书将不会存在。pandas 的核心开发者包括但不限于:Tom Augspurger、Joris van den Bossche、Chris Bartak、Phillip Cloud、gfyoung、Andy Hayden、Masaaki Horikoshi、Stephan Hoyer、Adam Klein、Wouter、Overmeire、Jeff Reback、Chang She、Skipper Seabold、Jeff Tratner 和 y-p。

 5

 在第 2 版的实际写作过程中,非常感谢 O 扲 eilly 的工作人员在写作进程中给予的耐心帮助。他们是 Marie Beaugureau、Ben Lorica 和Colleen Toporek。我再次得到了优秀技术审阅人的支持,他们是 Tom Augpurger、Paul Barry、Hugh Brown、Jonathan Coe 和 Andreas Müller。感谢你们。

 本书的第 1 版已经被翻译成多种语言,包括汉语、法语、德语、日语、韩语和俄语。将本书翻译给外国读者,是一份工作量大且缺少关注的付出。感谢你们帮助全世界更多人士学会如何编程及使用数据分析工具。

 在过去几年中,Cloudera 和 Two Sigma 投资公司对我的持续开源开发工作的支持使我感到十分幸运。由于开源项目相对于用户基数的比例越来越小,向重要开源项目提供开发支持变得越来越重要。这是一件值得去做的正确工作。

 第 1 版致谢(2012)

 如果没有众多相关人士的支持,写作本书对我来说将会十分困难。

 对于 O 扲 eilly 的工作人员,我非常感谢我的编辑 Meghan Blanchette和 Julie Steele,他们在整个写作过程对我给予指导。Mike Loukides 还在建议阶段与我一起工作,帮助本书付梓。

 我收到了大量相关人士丰富的技术审阅。尤其是 Martin Blais 和Hugh Brown ,他们自始至终在提高本书示例的清晰度、组织度上提供了令人难以置信的帮助。James Long、Drew Conway、Fernando Pérez、Brian Granger、Thomas Kluyver、Adam Klein、Josh Klein、Chang She 6

 和 Stéfan van der Walt 每个人都审阅了本书的一章或多章,从很多角度提供了有效反馈。

 我从数据社区的朋友和同行那里获得了很多关于示例和数据集的优秀想法,他们是:Mike Dewar、Jeff Hammerbacher、James Johndrow、Kristian Lum、Adam Klein、Hilary Mason、Chang She 和 Ashley Williams。

 当然,我也非常感激开源科学 Python 社区的众多领头人,他们为我的开发工作打下了基础,并在本书写作过程中给予我鼓励:IPython 核心团队(Fernando Pérez、Brian Granger、Min Ragan-Kelly、Thomas Kluyver 和其他相关人士)、John Hunter、Skipper Seabold、Travis Oliphant、Peter Wang、Eric Jones、Robert Kern、Josef Perktold、Francesc Alted、Chris Fonnesbeck 以及其他由于人数太多而无法提及的人们。还有很多人士一直以来提供了支持、想法和鼓励:Drew Conway、Sean Taylor、Giuseppe Paleologo、Jared Lander、David Epstein、John Krowas、Joshua Bloom、Den Pilsworth、John Myles-White 以及很多已经忘了姓名的人士。

 我还要感谢前些年生活中的一些人。首先是在 AQR 的前同事,他们都曾为我在 pandas 方面的工作喝彩,他们是:Alex Reyfman、Michael Wong、Tim Sargen、Oktay Kurbanov、Matthew Tschantz、Roni Israelov、Michael Katz、Chris Uga、Prasad Ramanan、Ted Square 和 Hoon Kim,以及我的指导教授 Haynes Miller(麻省理工学院)和 Mike West(杜克大学)。

 7

 2014 年,我在更新本书代码示例、修正一些由于 pandas 变更产生的错误时,从 Phillip Cloud 和 Joris Van den Bossche 处获得了重要帮助。

 个人方面,感谢 Casey 在写作过程中为我提供了无价的日常支持,忍受我的情绪起伏直到我按计划表写出了最终手稿。最后,感谢我的父母 Bill 和 Kim ,他们教会我如何去追寻梦想、永不止步。

 8

 第1章 准备⼯作1.1 本书的内容本书讲的是利⽤Python进⾏数据控制、处理、整理、分析等⽅⾯的具体细节和基本要点。我的⽬标是介绍Python编程和⽤于数据处理的库和⼯具环境,掌握这些,可以让你成为⼀个数据分析专家。虽然本书的标题是“数据分析”,重点确实Python编程、库,以及⽤于数据分析的⼯具。这就是数据分析要⽤到的Python编程。什么样的数据?当书中出现“数据”时,究竟指的是什么呢?主要指的是结构化数据(structured data),这个故意含糊其辞的术语代指了所有通⽤格式的数据,例如:表格型数据,其中各列可能是不同的类型(字符串、数值、⽇期等)。⽐如保存在关系型数据库中或以制表符/逗号为分隔符的⽂本⽂件中的那些数据。多维数组(矩阵)。通过关键列(对于SQL⽤户⽽⾔,就是主键和外键)相互联系的多个表。间隔平均或不平均的时间序列。这绝不是⼀个完整的列表。⼤部分数据集都能被转化为更加适合分析和建模的结构化形式,虽然有时这并不是很明显。如果不⾏的话,也可以将数据集的特征提取为某种结构化形式。例如,⼀组新闻⽂章可以被处理为⼀张词频表,⽽这张词频表就可以⽤于情感分析。⼤部分电⼦表格软件(⽐如Microsoft Excel,它可能是世界上使⽤最⼴泛的数据分析⼯具了)的⽤户不会对此类数据感到陌⽣。1.2 为什么要使⽤Python进⾏数据分析9

 许许多多的⼈(包括我⾃⼰)都很容易爱上Python这⻔语⾔。⾃从1991年诞⽣以来,Python现在已经成为最受欢迎的动态编程语⾔之⼀,其他还有Perl、Ruby等。由于拥有⼤量的Web框架(⽐如Rails(Ruby)和Django(Python)),⾃从2005年,⾮...

推荐访问:python如何分析数据 利用Python进行数据分析(第二版)_部分1 完整 利用 分析

Top