Pandas数据处理与分析高级案例详解

2022-11-11 10:08:14 浏览数 (1)

大家好,我是才哥。

两年半年因为工作需要,我开始接触pandas,看过很多pandas的资料,比如Pandas的官网文档、一些书籍以及在Github上找到了“Joyful pandas”,在咱们这个公众号的很多关于pandas的学习笔记都是来自这些学习资料。

正文

“告别痛苦,快乐学习pandas”是Datawhale社区和耿远昊发起“Joyful pandas”开源项目的初衷。历经两年的精心打磨,它终于要以熊猫书《pandas数据处理与分析》新面貌与大家见面啦。

本书作者耿远昊正在威斯康星大学麦迪逊分校统计学攻读硕士学位。他是Datawhale开源社区成员,“Joyful Pandas”开源项目作者。他也是pandas贡献者,活跃于pandas开源社区,主要贡献涉及漏洞修复、功能实现与性能优化等方面,对pandas在数据处理与分析中的应用有丰富经验。

耿远昊最初学习pandas时,也经历了一路坎坷。为了帮助更多人入门pandas,Datawhale发起Joyful Pandas开源项目。耿远昊将自己的学习经验进行总结并分享,希望更多的人可以快乐学习pandas。

01

让人又喜又恼的pandas

Pandas是Python数据分析的利器,也是各种数据建模的标准工具。pandas作为数据分析中的大红人,被无数人喜爱,但也让不少人苦恼无比——好用是非常好用,复杂也是真的复杂啊!

在学习pandas的时候,初学者可能会觉得无从下手:

这个东西的语法怎么那么混乱?

这满屏幕的setting with copy warning要怎么消除?

为什么写着写着就这么多if else了,要怎么解决?

这API多得离谱,函数看得头晕!

而且它处理数据的速度也没别人说得这么快呀……

pandas实在是太复杂方法内容什么的太多了,用起来是真的恼人!

这就像第一次进菜市场,初学者只能茫然四顾,不知道自己要买的菜在哪儿,好不容易看到一个卖胡萝卜的摊位,买完逛了半天才找到卖鸡蛋的。满头大汗地把所有菜品买齐,挤出菜市场回头再看一眼密密麻麻的人群和摊位,想着明天还要再来,便立马感觉一阵痛苦。

02

学习pandas的痛苦之旅

耿远昊对于这种痛苦非常感同身受。

他在华东师范大学读本科的时候学的是统计学专业,当时不管是作业还是课程,都有大量的大型表格处理需求。虽然所有的需求几乎都能用xlrd/xlwt和Python循环来解决,但也仅仅是能解决而已,因为处理速度很慢,代码几乎完全不能复用,每遇到新的任务就要重新写一遍代码,然后等它傻跑半天,解决问题效率很低,成本太高

他也曾尝试过学习pandas,但是因为学业繁忙,只能零星地学,效果很差。我们在前面说的那些问题,他也大多遇到过。pandas这个巨大而庞杂的工具包就像一头立在路边的大象,他感觉自己和一个盲人没啥区别,摸到腿就是腿,摸到鼻子就是鼻子,根本不知道这大象到底长啥样!

也正是因为函数多,参数更多,没有一条比较清晰的学习路线,他开始只能东一榔头西一斧子地学,感觉更混乱了。一旦程序报错,他更加手足无措:因为不知道内部操作而难以修复;而且即使这次修复好了,下一次遇到同样问题很有可能又忘了怎么解决。

他很是感慨,pandas令人头痛!

好在事情在2019年的秋天出现了转机。他偶然接触到了Theodore Petrou写的Pandas Cookbook一书,如获至宝!在快速地学习了一遍之后,他发现自己之前迷迷糊糊搞不明白的概念似乎变得清晰了许多!这让他学习pandas的痛苦减少了几分。

很快,他又找到官方的用户指南,一字一句地查看,通读完成后在脑海里建立了主要知识点的宏观概念。趁热打铁,他又拿起了pandas之父Wes McKinney的书Python for Data Analysis继续学习,才结束了自己学习pandas的痛苦之旅。

03

怒写教程,被pandas官方推荐

虽然他的痛苦之旅结束了,但是还有更多的人将要或者已经踏上了这段同样难受的学习pandas的旅程。经过一段时间的思考,他决定自己编写一套关于pandas的教程,希望为有着相似痛苦体验的人提供一些帮助,让pandas的学习和使用变得更轻松。

为了保证教程的正确和权威,同时保证教程的好用和简单,他结合Python for Data AnalysisPandas Cookbook和pandas官方用户指南,按照自己的切身体验和学习思路,全面、完整地梳理了pandas的主线内容,编写了一套关于pandas的教程——Joyful Pandas

这个名字就很能体现他的怨念和愿景:原先学习使用pandas真的是极其痛苦(Painful),现在要结束这种痛苦,是时候使用这个新的教程让pandas的学习过程变得快乐(Joyful)了!

作为一个快乐学习的教程,肯定不能像蜻蜓点水一样浅尝辄止,和雾里看花一样啥都不说明白,那样会更痛苦的。根据官方指南和两本pandas权威著作,耿远昊对pandas每个部分的核心概念和函数都做了重点介绍,并总结了函数之间的逻辑关系,建立了清晰的数据处理宏观体系,让人一目了然地就能看明白自己要学哪些内容。

Joyful Pandas教程分为10章,串成了一条非常明显的学习路线:先学pandas基础知识,然后学习如何使用索引、分组、变形、合并4个基础操作,之后学习缺失数据、文本数据、分类数据、时间序列数据4类关键数据。这些知识点是pandas的主线内容,在教程中被清晰地展示出来。跟着这条学习路线走,就能了解pandas的基础概念与操作,掌握关键的数据类型,从而在实际使用中达到信手拈来的效果。

▲ 教程内容概览

当然,想要达到“所写所得即所想”的地步,实践是必不可少的,光说不练假把式,只有自己身体力行地去做,才能真正得到快乐的学习体验。教程里面有不少的练习题,并且附上了解答思路和方法,还有代码实现也尽数提供,非常人性化。

2020年“Joyful Pandas”一经开源推出,就在pandas领域引起了不小的轰动。很快该课程的有效性得到读者们的认可,作为作者,耿远昊常被邀请去高校、企业组织举办讲座或直播。这个教程还被pandas官方增选为社区推荐教程,得到了官方的肯定。

▲ pandas官方推荐教程

他对于开源和分享精神是非常推崇的,一个人可以走得很快,一群人可以走得很远,他鼓励我们在学习过程中要多思考、多练习、多总结,同时要多分享、多交流、多协作,这样才能够更好地畅游数据科学的世界。

Joyful Pandas教程得到了非常多读者的喜爱,很多读者不再满足于单纯的线上教程模式,还希望它能够有纸质版,可以随时拿来阅读。

他肯定要满足大家的期盼。

04

让更多的人轻松学习pandas

纸质图书当然不是直接把教程复制下来印刷就完事了,还需要进行更多的工作。

首先就是pandas版本的升级,为了让读者们获取最新的知识,作者针对最新发布的pandas1.4.0版本,利用春节假期和无数工作日的夜晚,在原本已经进入校对环节,即将与大家见面的图书版本上,又对全书进行了两次重大更新。本书是目前pandas版本最新的教程。

因为学习pandas和编写“Joyful Pandas”教程的经验,他加入了pandas社区并成为活跃分子,为pandas的1.1.0版本、1.2.0版本、1.3.0版本、1.4.0版本和1.5.0版本贡献了自己的一份力量,包括文档描述性错误、修复代码中的bug以及增加函数的新特性(resample对象的逆向采样等)。这些丰富的经历,让他对pandas有了更为深入的理解,并把这种理解提炼成更为简明清晰的内容新增到图书之中。

在这样的背景之下,他对原教程1~10章进行了大量的修订工作。并且增加了3章的进阶实战内容!分别涵盖数据观测、特征工程、性能优化3个部分。正如前面说的那样,快乐学习的同时少不了实践,为了巩固章节知识,他又在每个章末尾增加了恰到好处的习题。

他和编辑长时间、多次对图书稿件进行修改,最终稿也终于定下来,图书马上就能与我们见面了。

图书里面有着上千段短小精悍的代码,输入输出成对出现,非常直观地展示了当前知识点的作用,我们一眼就能看清楚。

▲ 短小精悍的代码示例

对于关键的内容,或者需要补充和深入解读的部分,书中都进行了注解。

▲ “注解”示例

在章节内容初步学习完之后,紧跟着的是练一练栏目,我们能够把刚学的知识点做一个简单快速的回顾。

▲ “练一练”示例

加上新增的习题内容,从整体上连成一条线,把章节内容串在一起,从看到学,从理解到实践,达到融会贯通的效果。

▲ “习题”示例

当然,只出题不给答案是耍流氓。书中所有的练一练、习题的解答和代码实现,都有配套的资源,直接在异步社区《pandas数据处理与分析》图书页面就能获取,或者在GitHub上“datawhalechina/joyful-pandas”项目中下载。

他一直贯彻着“快乐学习”的理念,所以在写书的同时也关注着读者的定位——读者不需要熟悉数据科学或者数据分析,甚至不需要熟练使用Python,只要具备基本的语法知识就好了!完全的零基础可用!当然,对pandas有一定的基础,并且想要系统学习数据处理与分析方法的读者,也能从中获益,巩固和拓展自己的相关知识。

成书之后,可以预见的是会有更多的人告别痛苦的pandas学习,转而投入快乐学习pandas的怀抱。

05

适合初学者

pandas的知识体系对新人来说过于庞杂,学习成本和难度极大,尽管有官方指南和不少权威图书,但它们可能并不适合初学者。

耿远昊以自己的亲身体验出发而写的《pandas数据处理与分析》,其实就是许多初学者想要的:对庞杂的pandas知识体系进行剖析和梳理,找出一条由浅入深的学习路线,找出关键的函数方法,通过理论和实践的有效结合,帮助自己轻松地学习pandas。

很多东西只有以相似的视角,才能得到感同身受的内容,学习是如此,写书同样是如此。

文章编辑:沙鱼 审校:桐希,刘雅思

参考来源:

[1] 耿远昊.pandas数据处理与分析.[M].北京:人民邮电出版社,2022.

[2] datawhalechina/joyful-pandas: pandas中文教程..

[3] Community tutorials — pandas

0 人点赞