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