集Python、Excel、數(shù)據(jù)分析為一體是本書的一大特色。本書圍繞整個數(shù)據(jù)分析的常規(guī)流程:工具熟悉-獲取數(shù)據(jù)-數(shù)據(jù)熟悉-數(shù)據(jù)處理-數(shù)據(jù)分析-分析結(jié)果進行Excel 和Python 對比實現(xiàn),告訴你每一個過程中都會用到什么?過程與過程之間有什么聯(lián)系。這樣一本書既可以作為系統(tǒng)學(xué)習(xí)數(shù)據(jù)分析流程操作的說明書,也可以作為一本數(shù)據(jù)分析師案頭必備的實操工具書,隨時備查。本書通過對比Excel 功能操作去學(xué)習(xí)Python 的實現(xiàn)代碼,而不是直接上來就學(xué)習(xí)Python代碼,大大降低了學(xué)習(xí)門檻,消除了讀者對代碼的恐懼心理。適合剛?cè)胄械臄?shù)據(jù)分析師,也適合對Excel 比較熟練的數(shù)據(jù)分析師,或從事其他崗位想提高工作效率的職場人。
序言
有幸收到張俊紅的做序邀請,我非常高興。
從PC 時代到移動互聯(lián)網(wǎng)時代一路走來,每個人都感受到了數(shù)據(jù)爆炸性的增長,以及其中蘊含的巨大價值。從PC 時代開始,我們用鍵盤、掃描儀等設(shè)備使信息數(shù)據(jù)化。在移動互聯(lián)網(wǎng)時代,智能手機通過攝像頭、GPS、陀螺儀等各種傳感器將我們的位置、行動軌跡、行為偏好,甚至情緒等信息數(shù)據(jù)化。截至2000 年,全人類存儲了大約12EB 的數(shù)據(jù),要知道1PB=1024TB,1EB=1024PB。但是到了2011 年,一年所產(chǎn)生的數(shù)據(jù)就高達(dá)1.82ZB(注:1ZB=1024EB),數(shù)據(jù)已經(jīng)變成了一種人造的新能源。
在商業(yè)領(lǐng)域,從信息到商品,從商品到服務(wù),越來越多我們熟悉的事物被標(biāo)準(zhǔn)的數(shù)據(jù)所度量。無論是在線廣告的精準(zhǔn)營銷,還是電子商務(wù)的個性化推薦,又或者是互聯(lián)網(wǎng)金融的人臉識別,互聯(lián)網(wǎng)的每一次效率提升都依賴于對傳統(tǒng)信息、物品,甚至人的數(shù)據(jù)化。
在使用數(shù)據(jù)進行效率變革及商業(yè)化的道路上,Excel
和Python 扮演了關(guān)鍵的角色,它們幫助數(shù)據(jù)分析師高效地從海量數(shù)據(jù)中發(fā)現(xiàn)問題,驗證假設(shè),搭建模型,預(yù)測未來。作為一本數(shù)據(jù)分析的專業(yè)書籍,作者從數(shù)據(jù)采集、清洗、抽取,以及數(shù)據(jù)可視化等多個角度介紹了日常工作中數(shù)據(jù)分析的標(biāo)準(zhǔn)路徑。通過對比Excel 與Python 在數(shù)據(jù)處理過程中的操作步驟,詳細(xì)說明了Excel 與Python 間的差異,以及用Python 進行數(shù)據(jù)分析的方法。
雖與作者素未謀面,但是對于Python 在處理海量數(shù)據(jù)和建模上的高效性與便捷性,以及Python 在機器學(xué)習(xí)中的重要性,我們的觀點是一致的。同時我們也相信對于數(shù)據(jù)分析從業(yè)者來說,掌握一種用于數(shù)據(jù)處理的編程語言是非常必要的,而從Excel 到Python 的學(xué)習(xí)方法則是一條學(xué)好數(shù)據(jù)分析的捷徑。
王彥平
(網(wǎng)名藍(lán)鯨,電子書《從Excel 到Python數(shù)據(jù)分析進階指南》《從Excel到R數(shù)據(jù)分析進階指南》《從Excel 到SQL數(shù)據(jù)分析進階指南》的作者)
2019 年1 月8 日
前言
為什么要寫這本書
本書既是一本數(shù)據(jù)分析的書,也是一本Excel
數(shù)據(jù)分析的書,同時還是一本Python數(shù)據(jù)分析的書。在互聯(lián)網(wǎng)上,無論是搜索數(shù)據(jù)分析,還是搜索Excel
數(shù)據(jù)分析,亦或是搜索Python 數(shù)據(jù)分析,我們都可以找到很多相關(guān)的圖書。既然已經(jīng)有這么多同類題材的書了,為什么我還要寫呢?因為在我準(zhǔn)備寫這本書時,還沒有一本把數(shù)據(jù)分析、Excel 數(shù)據(jù)分析、Python 數(shù)據(jù)分析這三者結(jié)合在一起的書。
為什么我要把它們結(jié)合在一起寫呢?那是因為,我認(rèn)為這三者是一個數(shù)據(jù)分析師必備的技能,而且這三者本身也是一個有機統(tǒng)一體。數(shù)據(jù)分析讓你知道怎么分析以及分析什么;Excel 和Python 是你在分析過程中會用到的兩個工具。
為什么要學(xué)習(xí)Python
既然Python 在數(shù)據(jù)分析領(lǐng)域是一個和Excel 類似的數(shù)據(jù)分析工具,二者實現(xiàn)的功能都一樣,為什么還要學(xué)Python,把Excel 學(xué)好不就行了嗎?我認(rèn)為學(xué)習(xí)Python 的主要原因有以下幾點。
1.在處理大量數(shù)據(jù)時,Python 的效率高于Excel
當(dāng)數(shù)據(jù)量很小的時候,Excel 和Python 的處理速度基本上差不多,但是當(dāng)數(shù)據(jù)量較大或者公式嵌套太多時,Excel 就會變得很慢,這個時候怎么辦呢?我們可以使用Python,Python 對于海量數(shù)據(jù)的處理效果要明顯優(yōu)于Excel。用Vlookup 函數(shù)做一個實驗,兩個大小均為23MB 的表(6 萬行數(shù)據(jù)),在未作任何處理、沒有任何公式嵌套之前,Excel 中直接在一個表中用Vlookup 函數(shù)獲取另一個表的數(shù)據(jù)需要20 秒(我的計算機性能參數(shù)是I7、8GB 內(nèi)存、256GB 固態(tài)硬盤),配置稍微差點的計算機可能打開這個表都很難。但是用Python 實現(xiàn)上述過程只需要580 毫秒,即0.58 秒,是Excel效率的34 倍。
2.Python 可以輕松實現(xiàn)自動化
你可能會說Excel 的VBA 也可以自動化,但是VBA 主要還是基于Excel 內(nèi)部的自動化,一些其他方面的自動化VBA 就做不了,比如你要針對本地某一文件夾下面的文件名進行批量修改,VBA 就不能實現(xiàn),但是Python 可以。
3.Python 可用來做算法模型
雖然你是做數(shù)據(jù)分析的,但是一些基礎(chǔ)的算法模型還是有必要掌握的,Python 可以讓你在懂一些基礎(chǔ)的算法原理的情況下就能搭建一些模型,比如你可以使用聚類算法搭建一個模型去對用戶進行分類。
為什么要對比Excel 學(xué)習(xí)Python
Python 雖然是一門編程語言,但是在數(shù)據(jù)分析領(lǐng)域?qū)崿F(xiàn)的功能和Excel 的基本功能一樣,而Excel 又是大家比較熟悉、容易上手的軟件,所以可以通過Excel 數(shù)據(jù)分析去對比學(xué)習(xí)Python 數(shù)據(jù)分析。對于同一個功能,本書告訴你在Excel 中怎么做,并告訴你對應(yīng)到Python 中是什么樣的代碼。例如數(shù)值替換,即把一個值替換成另一個值,對把Excel替換成Python這一要求,在Excel 中可以通過鼠標(biāo)點選實現(xiàn),如下圖所示。
在Python 中則通過具體的代碼實現(xiàn),如下所示。
df.replace(Excel,Python) # 表示將表df 中的Excel 替換成Python
本書將數(shù)據(jù)分析過程中涉及的每一個操作都按這種方式對照講解,讓你從熟悉的Excel 操作中去學(xué)習(xí)對應(yīng)的Python 實現(xiàn),而不是直接學(xué)習(xí)Python 代碼,大大降低了學(xué)習(xí)門檻,消除了大家對代碼的恐懼心理。這也是本書的一大特色,也是我為什么要寫本書的最主要原因,就是希望幫助你不再懼怕代碼,讓你可以像學(xué)Excel 數(shù)據(jù)分析一樣,輕松學(xué)習(xí)Python 數(shù)據(jù)分析。
本書的學(xué)習(xí)建議
要想完全掌握一項技能,你必須系統(tǒng)學(xué)習(xí)它,知道它的前因后果。本書不是孤立地講Excel 或者Python 中的操作,而是圍繞整個數(shù)據(jù)分析的常規(guī)流程:熟悉工具明確目的獲取數(shù)據(jù)熟悉數(shù)據(jù)處理數(shù)據(jù)分析數(shù)據(jù)得出結(jié)論驗證結(jié)論展示結(jié)論,告訴你每一個過程都會用到什么操作,這些操作用Excel 和Python 分別怎么實現(xiàn)。這樣一本書既是系統(tǒng)學(xué)習(xí)數(shù)據(jù)分析流程操作的說明書,也是數(shù)據(jù)分析師案頭必備的實操工具書。
大家在讀第一遍的時候不用記住所有函數(shù),你是記不住的,即使你記住了,如果在工作中不用,那么很快就會忘記。正確的學(xué)習(xí)方式應(yīng)該是,先弄清楚一名數(shù)據(jù)分析師在日常工作中對工具都會有什么需求(當(dāng)然了,本書的順序是按照數(shù)據(jù)分析的常規(guī)分析流程來寫的),希望工具幫助你達(dá)到什么樣的目的,羅列好需求以后,再去研究工具的使用方法。比如,要刪除重復(fù)值,就要明確用Excel 如何實現(xiàn),用Python 又該如何實現(xiàn),兩種工具在實現(xiàn)方式上有什么異同,這樣對比次數(shù)多了以后,在遇到問題時,你自然而然就能用最快的速度選出最適合的工具了。數(shù)據(jù)分析一定是先有想法然后考慮如何用工具實現(xiàn),而不是剛開始就陷入記憶工具的使用方法中。
本書寫了什么
本書分為三篇。
入門篇:主要講數(shù)據(jù)分析的一些基礎(chǔ)知識,介紹數(shù)據(jù)分析是什么,為什么要做數(shù)據(jù)分析,數(shù)據(jù)分析究竟在分析什么,以及數(shù)據(jù)分析的常規(guī)流程。
實踐篇:圍繞數(shù)據(jù)分析的整個流程,分別介紹每一個步驟中的操作,這些操作用Excel 如何實現(xiàn),用Python 又如何實現(xiàn)。本篇內(nèi)容主要包括:Python 環(huán)境配置、Python基礎(chǔ)知識、數(shù)據(jù)源的獲取、數(shù)據(jù)概覽、數(shù)據(jù)預(yù)處理、數(shù)值操作、數(shù)據(jù)運算、時間序列、數(shù)據(jù)分組、數(shù)據(jù)透視表、結(jié)果文件導(dǎo)出、數(shù)據(jù)可視化等。
進階篇:介紹幾個實戰(zhàn)案例,讓你體會一下在實際業(yè)務(wù)中如何使用Python。具體來說,進階篇的內(nèi)容主要包括,利用Python 實現(xiàn)報表自動化、自動發(fā)送電子郵件,以及在不同業(yè)務(wù)場景中的案例分析。此外,還補充介紹了NumPy 數(shù)組的一些常用方法。
本書適合誰
本書主要適合以下人群。
Excel 已經(jīng)用得熟練,想學(xué)習(xí)Python 來豐富自己技能的數(shù)據(jù)分析師。
剛?cè)胄袑xcel 和Python 都不精通的數(shù)據(jù)分析師。
其他常用Excel 卻想通過學(xué)習(xí)Python 提高工作效率的人。
Python 雖然是一門編程語言,但是它并不難學(xué),不僅不難學(xué),而且很容易上手,這也是Python 深受廣大數(shù)據(jù)從業(yè)者喜愛的原因之一,因此大家在學(xué)習(xí)Python 之前首先在心里告訴自己一句話,那就是Python 并沒有那么難。
致謝
感謝我的父母,是他們給了我受教育的機會,才有了今天的我。
感謝我的公眾號的讀者朋友們,如果不是他們,那么我可能不會堅持撰寫技術(shù)文章,更不會有這本書。
感謝慧敏讓我意識到寫書的意義,從而創(chuàng)作本書,感謝電子工業(yè)出版社為這本書忙碌的所有人。
感謝我的女朋友,在寫書的這段日子里,我?guī)缀醢阉械臉I(yè)余時間全用在了寫作上,很少陪她,但她還是一直鼓勵我,支持我。
張俊紅:某互聯(lián)網(wǎng)公司數(shù)據(jù)分析師,擅長Python、Sql、Excel,對數(shù)據(jù)分析、機器學(xué)習(xí)領(lǐng)域比較熟悉。喜歡分享,致力于做一個數(shù)據(jù)科學(xué)路上的終身學(xué)習(xí)者,實踐者,分享者。個人微信公眾號張俊紅定期推送數(shù)據(jù)分析、機器學(xué)習(xí)、網(wǎng)絡(luò)爬蟲、Python 編程系列文章。