编辑推荐

适读人群:适合刚学Python的数据分析师或刚学数据科学以及科学计算的Python编程者。

阅读《利用Python进行数据分析(原书第2版)》可以获得一份关于在Python下操作、处理、清洗、规整数据集的完整说明。《利用Python进行数据分析(原书第2版)》第二版针对Python3.6进行了更新,并增加实际案例向你展示如何高效地解决一系列数据分析问题。你将在阅读过程中学习到新版本的pandas、NumPy、IPython和Jupyter。

利用Python进行数据分析(原书第2版)》由WesMcKinney创作,他是Pythonpandas项目的创始人。《利用Python进行数据分析(原书第2版)》是对Python数据科学工具的实操化、现代化的介绍,非常适合刚学Python的数据分析师或刚学数据科学以及科学计算的Python编程者。数据文件和相关的材料可以在GitHub上找到:

l使用IPythonshell和Jupyternotebook进行探索性计算

l学习NumPy(NumericalPython)的基础和高级特性

l入门pandas库中的数据分析工具

l使用灵活工具对数据进行载入、清洗、变换、合并和重塑

l使用matplotlib创建富含信息的可视化

l将pandas的groupby功能应用于对数据集的切片、分块和汇总

l分析并操作规则和不规则的时间序列数据

利用完整的、详细的示例学习如何解决现实中数据分析问题

内容简介

利用Python进行数据分析(原书第2版)》由Pythonpandas项目创始人WesMcKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。

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

?所有的代码,包括把Python的教程更新到了Python3.6版本(第1版中使用的是Python2.7)

?更新了Python第三方发布版Anaconda和其他所需Python包的安装指引

?更新pandas库到2017年的新版

?新增一章,关于更多高级pandas工具和一些使用提示

?新增statsmodels和scikit-learn的简明使用介绍

作者简介

WesMcKinney是流行的Python开源数据分析库pandas的创始人。他是一名活跃的演讲者,也是Python数据社区和Apache软件基金会的Python/C++开源开发者。目前他在纽约从事软件架构师工作

精彩书评

“《利用Python进行数据分析(原书第2版)》已经是Python数据生态中的一本经典书籍,本次的新版本对Python3.6到pandas新特性等关键领域都进行了更新,增强了其独特价值。通过解释为什么以及如何使用Python数据工具,《利用Python进行数据分析(原书第2版)》以新颖、创造性的方式帮助读者高效地学习了这些工具。它是所有现代化数据密集型计算库的重要组成部分“

——FernandoPerez,加州大学伯克利分校助理教授、IPython创始人、Jupyter项目联合创始

目录

前言1

第1章准备工作7

1.1《利用Python进行数据分析(原书第2版)》内容7

1.1.1什么类型的数据7

1.2为何利用Python进行数据分析8

1.2.1Python作为胶水8

1.2.2解决“双语言”难题8

1.2.3为何不使用Python9

1.3重要的Python库9

1.3.1NumPy9

1.3.2pandas10

1.3.3matplotlib11

1.3.4IPython与Jupyter11

1.3.5SciPy12

1.3.6scikit-learn12

1.3.7statsmodels13

1.4安装与设置13

1.4.1Windows14

1.4.2Apple(OSX和macOS)14

1.4.3GNU/Linux14

1.4.4安装及更新Python包15

1.4.5Python2和Python316

1.4.6集成开发环境和文本编辑器16

1.5社区和会议17

1.6快速浏览《利用Python进行数据分析(原书第2版)》17

1.6.1代码示例18

1.6.2示例数据18

1.6.3导入约定18

1.6.4术语19

第2章Python语言基础、IPython及Jupyternotebook20

2.1Python解释器21

2.2IPython基础22

2.2.1运行IPython命令行22

2.2.2运行Jupyternotebook23

2.2.3Tab补全25

2.2.4内省27

2.2.5%run命令28

2.2.6执行剪贴板中的程序30

2.2.7终端快捷键30

2.2.8关于魔术命令31

2.2.9 matplotlib集成33

2.3Python语言基础34

2.3.1语言语义34

2.3.2标量类型42

2.3.3控制流49

第3章内建数据结构、函数及文件54

3.1数据结构和序列54

3.1.1元组54

3.1.2列表57

3.1.3内建序列函数61

3.1.4字典64

3.1.5集合67

3.1.6列表、集合和字典的推导式69

3.2函数72

3.2.1命名空间、作用域和本地函数72

3.2.2返回多个值73

3.2.3函数是对象74

3.2.4匿名(Lambda)函数75

3.2.5柯里化:部分参数应用76

3.2.6生成器77

3.2.7错误和异常处理79

3.3文件与操作系统82

3.3.1字节与Unicode文件85

3.4本章小结86

第4章NumPy基础:数组与向量化计算87

4.1NumPyndarray:多维数组对象89

4.1.1生成ndarray90

4.1.2ndarray的数据类型92

4.1.3NumPy数组算术94

4.1.4基础索引与切片95

4.1.5布尔索引100

4.1.6神奇索引103

4.1.7数组转置和换轴104

4.2通用函数:快速的逐元素数组函数106

4.3使用数组进行面向数组编程109

4.3.1将条件逻辑作为数组操作110

4.3.2数学和统计方法111

4.3.3布尔值数组的方法113

4.3.4排序114

4.3.5唯一值与其他集合逻辑115

4.4使用数组进行文件输入和输出115

4.5线性代数116

4.6伪随机数生成118

4.7示例:随机漫步120

4.7.1一次性模拟多次随机漫步121

4.8本章小结122

第5章pandas入门123

5.1pandas数据结构介绍123

5.1.1Series123

5.1.2DataFrame128

5.1.3索引对象134

5.2基本功能135

......

前言/序言

第2版新内容

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

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

所有的代码,包括把Python的教程更新到了Python3.6版本(第1版中使用的是Python2.7)

更新了Python第三方发布版Anaconda和其他所需Python包的安装指引

更新pandas库到2017年的最新版

新增一章,关于更多高级pandas工具和一些使用提示

新增statsmodels和scikit-learn的简明使用介绍

除了以上更新内容,我还重新组织了第1版的部分重要内容,使《利用Python进行数据分析(原书第2版)》对新手来说更易于理解。

利用Python进行数据分析(原书第2版)》约定

以下印刷约定将在《利用Python进行数据分析(原书第2版)》中使用:

斜体(Italic)

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

等宽字体(Constantwidth)

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

等宽粗体(Constantwidthbold)

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

等宽斜体(Constantwidthitalic)

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

本符号表示提示或建议。

本符号表示一般性说明。

本符号表示警告。

使用代码示例

可以通过《利用Python进行数据分析(原书第2版)》的GitHub仓库获取《利用Python进行数据分析(原书第2版)》每一章中的数据文件和相关材料。GitHub仓库地址:http://github.com/wesm/pydata-book。

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

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

如果你认为你对《利用Python进行数据分析(原书第2版)》示例代码的使用超过了正常使用范围或者需要以上介绍的授权许可,请联系permissions@oreilly.com。

O'ReillySafari

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

会员可以访问数千书籍、培训视频、学习路径、交互教程和超过250家出版商的企划列表,包括O'ReillyMedia、HarvardBusinessReview、PrenticeHallProfessional、Addison-WesleyProfessional、MicrosoftPress、Sams、Que、PeachpitPress、Adobe、FocalPress、CiscoPress、JohnWiley&Sons、Syngress、MorganKaufmann、IBMRedbooks、Packt、AdobePress、FTPress、Apress、Manning、NewRiders、McGraw-Hill、Jones&Bartlett、CourseTechnology等。

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

如何联系我们

对于《利用Python进行数据分析(原书第2版)》如果有任何意见或疑问,请按照以下地址联系《利用Python进行数据分析(原书第2版)》出版商。

美国:

O'ReillyMedia,Inc.

1005GravensteinHighwayNorth

Sebastopol,CA95472

中国:

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

奥莱利技术咨询(北京)有限公司

我们为《利用Python进行数据分析(原书第2版)》准备了一个网页,用于陈列勘误、示例和其他附加信息。访问地址是:http://bit.ly/python_data_analysis_2e。

针对《利用Python进行数据分析(原书第2版)》评论或提出技术问题,请发送邮件至:bookquestions@oreilly.com。

关于《利用Python进行数据分析(原书第2版)》的更多信息、课程、会议及新闻,请访问我们的网站:http://www.oreilly.com。

Facebook联系我们:http://facebook.com/oreilly

Twitter联系我们:http://twitter.com/oreillymedia

YouTube观看我们的视频:http://www.youtube.com/oreillymedia

致谢

利用Python进行数据分析(原书第2版)》是全世界很多人多年来富有成效的讨论、协作和支持的成果。我想对他们中的一些代表致以谢意。

怀念:JohnD.Hunter(1968—2012)

我们亲爱的朋友和同行JohnD.Hunter在经历了一场与结肠癌的战斗后,于2012年8月28日离开了世界。那时正是我完成《利用Python进行数据分析(原书第2版)》第1版最终手稿后不久。

John对Python科学计算和数据社区的影响之大难以估量,他给我们留下的遗产价值非凡。除了在2000年初期开发matplotlib之外(那时Python还没有当下如此流行),他还帮助塑造了一代核心开源开发者的文化,如今这些开发者已经成为Python生态系统的顶梁柱,而Python生态系统对于现如今的我们来说似乎是理所当然的。

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

John与IPython、Jupyter项目的先锋FernandoPérez、BrianGranger及其他很多Python社区的倡议人联系紧密。我们四人曾经希望共同写作一《利用Python进行数据分析(原书第2版)》,但只有我个人时间最为自由,所以这个想法被搁置了。我非常确信他会为过去5年中我们个人及我们社区所取得的成就感到骄傲。

第2版致谢(2017)

距离我在2012年7月完成第1版手稿已经5年了。很多事情都发生了变化。Python社区获得了极大的成长,围绕Python的开源软件生态系统也十分繁荣。pandas核心开发者孜孜不倦的付出,使得pandas项目高速成长,也使得pandas的用户群体遍布Python数据科学生态系统的各个角落,没有他们《利用Python进行数据分析(原书第2版)》将不会存在。pandas的核心开发者包括但不限于:TomAugspurger、JorisvandenBossche、ChrisBartak、PhillipCloud、gfyoung、AndyHayden、MasaakiHorikoshi、StephanHoyer、AdamKlein、Wouter、Overmeire、JeffReback、ChangShe、SkipperSeabold、JeffTratner和y-p。

在第2版的实际写作过程中,非常感谢O扲eilly的工作人员在写作进程中给予的耐心帮助。他们是MarieBeaugureau、BenLorica和ColleenToporek。我再次得到了优秀技术审阅人的支持,他们是TomAugpurger、PaulBarry、HughBrown、JonathanCoe和AndreasMüller。感谢你们。

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

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

第1版致谢(2012)

如果没有众多相关人士的支持,写作《利用Python进行数据分析(原书第2版)》对我来说将会十分困难。

对于O扲eilly的工作人员,我非常感谢我的编辑MeghanBlanchette和JulieSteele,他们在整个写作过程对我给予指导。MikeLoukides还在建议阶段与我一起工作,帮助《利用Python进行数据分析(原书第2版)》付梓。

我收到了大量相关人士丰富的技术审阅。尤其是MartinBlais和HughBrown,他们自始至终在提高《利用Python进行数据分析(原书第2版)》示例的清晰度、组织度上提供了令人难以置信的帮助。JamesLong、DrewConway、FernandoPérez、BrianGranger、ThomasKluyver、AdamKlein、JoshKlein、ChangShe和StéfanvanderWalt每个人都审阅了《利用Python进行数据分析(原书第2版)》的一章或多章,从很多角度提供了有效反馈。

我从数据社区的朋友和同行那里获得了很多关于示例和数据集的优秀想法,他们是:MikeDewar、JeffHammerbacher、JamesJohndrow、KristianLum、AdamKlein、HilaryMason、ChangShe和AshleyWilliams。

当然,我也非常感激开源科学Python社区的众多领头人,他们为我的开发工作打下了基础,并在《利用Python进行数据分析(原书第2版)》写作过程中给予我鼓励:IPython核心团队(FernandoPérez、BrianGranger、MinRagan-Kelly、ThomasKluyver和其他相关人士)、JohnHunter、SkipperSeabold、TravisOliphant、PeterWang、EricJones、RobertKern、JosefPerktold、FrancescAlted、ChrisFonnesbeck以及其他由于人数太多而无法提及的人们。还有很多人士一直以来提供了支持、想法和鼓励:DrewConway、SeanTaylor、GiuseppePaleologo、JaredLander、DavidEpstein、JohnKrowas、JoshuaBloom、DenPilsworth、JohnMyles-White以及很多已经忘了姓名的人士。

我还要感谢前些年生活中的一些人。首先是在AQR的前同事,他们都曾为我在pandas方面的工作喝彩,他们是:AlexReyfman、MichaelWong、TimSargen、OktayKurbanov、MatthewTschantz、RoniIsraelov、MichaelKatz、ChrisUga、PrasadRamanan、TedSquare和HoonKim,以及我的指导教授HaynesMiller(麻省理工学院)和MikeWest(杜克大学)。

2014年,我在更新《利用Python进行数据分析(原书第2版)》代码示例、修正一些由于pandas变更产生的错误时,从PhillipCloud和JorisVandenBossche处获得了重要帮助。

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


其他推荐