Datawhale開源項目“熊貓書”重磅出版!(文末贈送福利)
“告別痛苦,快樂學(xué)習(xí)pandas”是Datawhale社區(qū)和耿遠(yuǎn)昊發(fā)起“Joyful pandas”開源項目的初衷。歷經(jīng)兩年的精心打磨,它終于要以熊貓書《pandas數(shù)據(jù)處理與分析》新面貌與大家見面啦。

▲ 點擊圖片購書5折
本書作者耿遠(yuǎn)昊正在威斯康星大學(xué)麥迪遜分校統(tǒng)計學(xué)攻讀碩士學(xué)位。他是Datawhale開源社區(qū)成員,“Joyful Pandas”開源項目作者。他也是pandas貢獻(xiàn)者,活躍于pandas開源社區(qū),主要貢獻(xiàn)涉及漏洞修復(fù)、功能實現(xiàn)與性能優(yōu)化等方面,對pandas在數(shù)據(jù)處理與分析中的應(yīng)用有豐富經(jīng)驗。
耿遠(yuǎn)昊最初學(xué)習(xí)pandas時,也經(jīng)歷了一路坎坷。為了幫助更多人入門pandas,Datawhale發(fā)起Joyful Pandas開源項目。耿遠(yuǎn)昊將自己的學(xué)習(xí)經(jīng)驗進(jìn)行總結(jié)并分享,希望更多的人可以快樂學(xué)習(xí)pandas。
01
Pandas是Python數(shù)據(jù)分析的利器,也是各種數(shù)據(jù)建模的標(biāo)準(zhǔn)工具。pandas作為數(shù)據(jù)分析中的大紅人,被無數(shù)人喜愛,但也讓不少人苦惱無比——好用是非常好用,復(fù)雜也是真的復(fù)雜啊!
在學(xué)習(xí)pandas的時候,初學(xué)者可能會覺得無從下手:
這個東西的語法怎么那么混亂?
這滿屏幕的setting with copy warning要怎么消除?
為什么寫著寫著就這么多if else了,要怎么解決?
這API多得離譜,函數(shù)看得頭暈!
而且它處理數(shù)據(jù)的速度也沒別人說得這么快呀……
pandas實在是太復(fù)雜,方法內(nèi)容什么的太多了,用起來是真的惱人!
這就像第一次進(jìn)菜市場,初學(xué)者只能茫然四顧,不知道自己要買的菜在哪兒,好不容易看到一個賣胡蘿卜的攤位,買完逛了半天才找到賣雞蛋的。滿頭大汗地把所有菜品買齊,擠出菜市場回頭再看一眼密密麻麻的人群和攤位,想著明天還要再來,便立馬感覺一陣痛苦。
02
耿遠(yuǎn)昊對于這種痛苦非常感同身受。
他在華東師范大學(xué)讀本科的時候?qū)W的是統(tǒng)計學(xué)專業(yè),當(dāng)時不管是作業(yè)還是課程,都有大量的大型表格處理需求。雖然所有的需求幾乎都能用xlrd/xlwt和Python循環(huán)來解決,但也僅僅是能解決而已,因為處理速度很慢,代碼幾乎完全不能復(fù)用,每遇到新的任務(wù)就要重新寫一遍代碼,然后等它傻跑半天,解決問題效率很低,成本太高。
他也曾嘗試過學(xué)習(xí)pandas,但是因為學(xué)業(yè)繁忙,只能零星地學(xué),效果很差。我們在前面說的那些問題,他也大多遇到過。pandas這個巨大而龐雜的工具包就像一頭立在路邊的大象,他感覺自己和一個盲人沒啥區(qū)別,摸到腿就是腿,摸到鼻子就是鼻子,根本不知道這大象到底長啥樣!
也正是因為函數(shù)多,參數(shù)更多,沒有一條比較清晰的學(xué)習(xí)路線,他開始只能東一榔頭西一斧子地學(xué),感覺更混亂了。一旦程序報錯,他更加手足無措:因為不知道內(nèi)部操作而難以修復(fù);而且即使這次修復(fù)好了,下一次遇到同樣問題很有可能又忘了怎么解決。
他很是感慨,pandas令人頭痛!
好在事情在2019年的秋天出現(xiàn)了轉(zhuǎn)機(jī)。他偶然接觸到了Theodore Petrou寫的Pandas Cookbook一書,如獲至寶!在快速地學(xué)習(xí)了一遍之后,他發(fā)現(xiàn)自己之前迷迷糊糊搞不明白的概念似乎變得清晰了許多!這讓他學(xué)習(xí)pandas的痛苦減少了幾分。
很快,他又找到官方的用戶指南,一字一句地查看,通讀完成后在腦海里建立了主要知識點的宏觀概念。趁熱打鐵,他又拿起了pandas之父Wes McKinney的書Python for Data Analysis繼續(xù)學(xué)習(xí),才結(jié)束了自己學(xué)習(xí)pandas的痛苦之旅。
03
雖然他的痛苦之旅結(jié)束了,但是還有更多的人將要或者已經(jīng)踏上了這段同樣難受的學(xué)習(xí)pandas的旅程。經(jīng)過一段時間的思考,他決定自己編寫一套關(guān)于pandas的教程,希望為有著相似痛苦體驗的人提供一些幫助,讓pandas的學(xué)習(xí)和使用變得更輕松。
為了保證教程的正確和權(quán)威,同時保證教程的好用和簡單,他結(jié)合Python for Data Analysis、Pandas Cookbook和pandas官方用戶指南,按照自己的切身體驗和學(xué)習(xí)思路,全面、完整地梳理了pandas的主線內(nèi)容,編寫了一套關(guān)于pandas的教程——Joyful Pandas。
這個名字就很能體現(xiàn)他的怨念和愿景:原先學(xué)習(xí)使用pandas真的是極其痛苦(Painful),現(xiàn)在要結(jié)束這種痛苦,是時候使用這個新的教程讓pandas的學(xué)習(xí)過程變得快樂(Joyful)了!
作為一個快樂學(xué)習(xí)的教程,肯定不能像蜻蜓點水一樣淺嘗輒止,和霧里看花一樣啥都不說明白,那樣會更痛苦的。根據(jù)官方指南和兩本pandas權(quán)威著作,耿遠(yuǎn)昊對pandas每個部分的核心概念和函數(shù)都做了重點介紹,并總結(jié)了函數(shù)之間的邏輯關(guān)系,建立了清晰的數(shù)據(jù)處理宏觀體系,讓人一目了然地就能看明白自己要學(xué)哪些內(nèi)容。
Joyful Pandas教程分為10章,串成了一條非常明顯的學(xué)習(xí)路線:先學(xué)pandas基礎(chǔ)知識,然后學(xué)習(xí)如何使用索引、分組、變形、合并4個基礎(chǔ)操作,之后學(xué)習(xí)缺失數(shù)據(jù)、文本數(shù)據(jù)、分類數(shù)據(jù)、時間序列數(shù)據(jù)4類關(guān)鍵數(shù)據(jù)。這些知識點是pandas的主線內(nèi)容,在教程中被清晰地展示出來。跟著這條學(xué)習(xí)路線走,就能了解pandas的基礎(chǔ)概念與操作,掌握關(guān)鍵的數(shù)據(jù)類型,從而在實際使用中達(dá)到信手拈來的效果。



▲ 教程內(nèi)容概覽
當(dāng)然,想要達(dá)到“所寫所得即所想”的地步,實踐是必不可少的,光說不練假把式,只有自己身體力行地去做,才能真正得到快樂的學(xué)習(xí)體驗。教程里面有不少的練習(xí)題,并且附上了解答思路和方法,還有代碼實現(xiàn)也盡數(shù)提供,非常人性化。
2020年“Joyful Pandas”一經(jīng)開源推出,就在pandas領(lǐng)域引起了不小的轟動。很快該課程的有效性得到讀者們的認(rèn)可,作為作者,耿遠(yuǎn)昊常被邀請去高校、企業(yè)組織舉辦講座或直播。這個教程還被pandas官方增選為社區(qū)推薦教程,得到了官方的肯定。

▲ pandas官方推薦教程
他對于開源和分享精神是非常推崇的,一個人可以走得很快,一群人可以走得很遠(yuǎn),他鼓勵我們在學(xué)習(xí)過程中要多思考、多練習(xí)、多總結(jié),同時要多分享、多交流、多協(xié)作,這樣才能夠更好地暢游數(shù)據(jù)科學(xué)的世界。
Joyful Pandas教程得到了非常多讀者的喜愛,很多讀者不再滿足于單純的線上教程模式,還希望它能夠有紙質(zhì)版,可以隨時拿來閱讀。
他肯定要滿足大家的期盼。
04
紙質(zhì)圖書當(dāng)然不是直接把教程復(fù)制下來印刷就完事了,還需要進(jìn)行更多的工作。
首先就是pandas版本的升級,為了讓讀者們獲取最新的知識,作者針對最新發(fā)布的pandas1.4.0版本,利用春節(jié)假期和無數(shù)工作日的夜晚,在原本已經(jīng)進(jìn)入校對環(huán)節(jié),即將與大家見面的圖書版本上,又對全書進(jìn)行了兩次重大更新。本書是目前pandas版本最新的教程。
因為學(xué)習(xí)pandas和編寫“Joyful Pandas”教程的經(jīng)驗,他加入了pandas社區(qū)并成為活躍分子,為pandas的1.1.0版本、1.2.0版本、1.3.0版本、1.4.0版本和1.5.0版本貢獻(xiàn)了自己的一份力量,包括文檔描述性錯誤、修復(fù)代碼中的bug以及增加函數(shù)的新特性(resample對象的逆向采樣等)。這些豐富的經(jīng)歷,讓他對pandas有了更為深入的理解,并把這種理解提煉成更為簡明清晰的內(nèi)容新增到圖書之中。
在這樣的背景之下,他對原教程1~10章進(jìn)行了大量的修訂工作。并且增加了3章的進(jìn)階實戰(zhàn)內(nèi)容!分別涵蓋數(shù)據(jù)觀測、特征工程、性能優(yōu)化3個部分。正如前面說的那樣,快樂學(xué)習(xí)的同時少不了實踐,為了鞏固章節(jié)知識,他又在每個章末尾增加了恰到好處的習(xí)題。
他和編輯長時間、多次對圖書稿件進(jìn)行修改,最終稿也終于定下來,圖書馬上就能與我們見面了。
圖書里面有著上千段短小精悍的代碼,輸入輸出成對出現(xiàn),非常直觀地展示了當(dāng)前知識點的作用,我們一眼就能看清楚。

▲ 短小精悍的代碼示例
對于關(guān)鍵的內(nèi)容,或者需要補(bǔ)充和深入解讀的部分,書中都進(jìn)行了注解。

▲ “注解”示例
在章節(jié)內(nèi)容初步學(xué)習(xí)完之后,緊跟著的是練一練欄目,我們能夠把剛學(xué)的知識點做一個簡單快速的回顧。

▲ “練一練”示例
加上新增的習(xí)題內(nèi)容,從整體上連成一條線,把章節(jié)內(nèi)容串在一起,從看到學(xué),從理解到實踐,達(dá)到融會貫通的效果。

▲ “習(xí)題”示例
當(dāng)然,只出題不給答案是耍流氓。書中所有的練一練、習(xí)題的解答和代碼實現(xiàn),都有配套的資源,直接在異步社區(qū)《pandas數(shù)據(jù)處理與分析》圖書頁面就能獲取,或者在GitHub上“datawhalechina/joyful-pandas”項目中下載。
他一直貫徹著“快樂學(xué)習(xí)”的理念,所以在寫書的同時也關(guān)注著讀者的定位——讀者不需要熟悉數(shù)據(jù)科學(xué)或者數(shù)據(jù)分析,甚至不需要熟練使用Python,只要具備基本的語法知識就好了!完全的零基礎(chǔ)可用!當(dāng)然,對pandas有一定的基礎(chǔ),并且想要系統(tǒng)學(xué)習(xí)數(shù)據(jù)處理與分析方法的讀者,也能從中獲益,鞏固和拓展自己的相關(guān)知識。
成書之后,可以預(yù)見的是會有更多的人告別痛苦的pandas學(xué)習(xí),轉(zhuǎn)而投入快樂學(xué)習(xí)pandas的懷抱。
05
pandas的知識體系對新人來說過于龐雜,學(xué)習(xí)成本和難度極大,盡管有官方指南和不少權(quán)威圖書,但它們可能并不適合初學(xué)者。
耿遠(yuǎn)昊以自己的親身體驗出發(fā)而寫的《pandas數(shù)據(jù)處理與分析》,其實就是許多初學(xué)者想要的:對龐雜的pandas知識體系進(jìn)行剖析和梳理,找出一條由淺入深的學(xué)習(xí)路線,找出關(guān)鍵的函數(shù)方法,通過理論和實踐的有效結(jié)合,幫助自己輕松地學(xué)習(xí)pandas。
很多東西只有以相似的視角,才能得到感同身受的內(nèi)容,學(xué)習(xí)是如此,寫書同樣是如此。
文章編輯:沙魚 審校:桐希,劉雅思
參考來源:
[1] 耿遠(yuǎn)昊.pandas數(shù)據(jù)處理與分析.[M].北京:人民郵電出版社,2022.
[2] datawhalechina/joyful-pandas: pandas中文教程..
[3] Community tutorials — pandas
—END—
今天我們?yōu)榇蠹姨峁?個名額,贈送這本書給大家!中獎的朋友請記得留下聯(lián)系方式和地址!歡迎大家掃碼參與!

分享
收藏
點贊
在看

