全書共15章,第1章介紹了學習python的好處何在以及如何高效地學習python;第2章介紹python、anaconda以及IDE的安裝;第3章講解編程的常識,包括io、文件系統、編碼格式等;第4章介紹Excel和text文本的讀寫;第5章介紹數據處理神器-pandas;第6章介紹python的編程調試;從第7章開始進入數據分析的范疇,第7章介紹進行數據預處理;第8章介紹數據分析的常見問題和方法;第9章介紹在python中如何尋找異常值;第10章介紹相關和回歸;第11章介紹聚類技術;第12章介紹決策樹技術;第13章介紹關聯分析技巧;第14章介紹降維技術;第15章介紹matplotlib繪圖。
數據的重要性越來越高,甚至已經被國家提到高要素化的程度。數據資產化、數據治理等成為企業關注的重點方向,但是數據要想真正賦能企業發展,數據分析是必須要經歷的過程。所以在數據要素時代,數據分析會更加重要。那么如何快速入門數據分析?沒有編程經驗的人如何快速入門數據分析?本書給出了答案。想轉行做數據分析而又苦于沒有基礎的朋友,不妨試試這本書,這是得到了近萬名學員肯定的零基礎學數據分析課程的文字版。
為什么要寫這本書
我在培訓行業耕耘了10多年,作為專門培訓數據分析技術的老師,我多年來一直很關注數據方面的相關書籍,可以說市面上絕大多數與數據分析相關的書我都看過,但發現現在市面上從編程菜鳥視角出發講解Python數據分析的書比較少。
通過這么多年從事數據業務的培訓和咨詢,我對菜鳥讀者的實際需求有了深入的了解,對他們的學習心態、知識儲備、難點和痛點都心中有數。比如,不少剛剛上手Python編程的開發人員很關心Python的腳本是如何編譯成.exe可執行文件的,雖然他們自己可以通過相關軟件完成編譯執行,但是他們的客戶多數不會安裝編譯軟件及搭建編程環境。再比如,菜鳥讀者往往容易對枯燥的程序調試過程感到厭煩和恐懼,但是程序調試在編程中的重要性不言而喻。在剛剛上手寫Python腳本的時候,開發人員往往遇到程序錯誤就不知所措,而合理使用程序調試則可以幫他們更快地找到問題。程序調試不僅對診斷程序錯誤的作用巨大,在幫助開發人員閱讀Python腳本方面的作用也很明顯。對于編程菜鳥來說,Python的對象以及對象中的屬性和方法,都是比較晦澀難懂的,如果他們能熟練掌握程序調試技巧,大部分的Python腳本都會變得更加簡單易懂。
針對以上需求,我撰寫了本書。簡而言之,這是一本專門寫給編程菜鳥的Python數據分析書,無論是結構編排、內容組織還是語言風格,都針對這部分讀者的實際需求來安排。
讀者對象
本書的讀者對象如下。
Python數據分析應用的初學者。這部分讀者通過本書可以快速掌握Python數據分析的各項基礎技能,從而有效應對Python數據分析的實際工作。
Python編程的初學者和愛好者。這部分讀者通過本書不僅可以掌握Python的基礎知識,實現Python編程入門,還可以結合Python在數據分析領域的應用案例,提高Python編程實踐水平。
Python數據分析的培訓老師和學員。本書脫胎于作者的一線培訓經驗,適合廣大培訓機構的老師和學員使用。
Python編程的中級開發者。這部分讀者可以通過本書進一步豐富Python編程經驗,掌握Python編程的實際應用。
大學應屆畢業生。這部分讀者可以通過本書入門Python,獲得貼近真實工作場景的實踐,增強面試優勢。
本書的編排特色
本書的編排特色如下。
本書針對編程菜鳥的學習特點進行章節設計。例如,第2章詳細介紹了Python的工作環境、Python的兩種解釋器以及如何編譯成.exe可執行文件,第3章詳細介紹了Python的編程基礎知識,第4章深度剖析了程序調試(debug)。我深知如果編程菜鳥沒有掌握這些內容,很難上手寫Python腳本。
本書盡可能多地介紹Python在實際工作中的應用場景。例如,在數據結構部分,我特別強調字典這一數據結構在大數據分析和去重統計中的應用,同時強調集合這一數據結構在數據比對(差集)中的應用。本書通過實際應用場景介紹Python功能的例子還有很多,這種撰寫方法能夠較好地將Python的功能點和實際應用場景相結合,便于讀者尤其是編程初學者快速掌握本書的內容。
本書添加了大量可實操的數據分析方法與模型。例如,第10~14章介紹了各種不同的重要而經典的數據分析模型;即使是總覽數據分析方法的第9章也保證了所介紹的定量型數據分析方法是可實操的。
第15章提供了多個爬蟲爬取數據的實例,更能滿足Python編程菜鳥的需求。
另外,為了降低讀者的學習門檻和成本,本書盡量壓縮了文字的篇幅,不講無用的理論,只講能夠幫助讀者實踐的干貨知識。同時,本書提供了大量可以直接使用的代碼以及直觀的圖表,以幫助讀者更輕松地掌握所學知識。
如何閱讀本書
本書分為兩篇,主要內容如下。
Python基礎篇(第1~7章):主要介紹了Python的工作環境、編程基礎、Excel數據文件的操作、pandas數據包的應用等。對于Python初學者,這部分內容是必學的。學完這部分內容,讀者不僅可以快速掌握Python編程基礎,還能快速入門數據分析操作,從而應對大部分初級的Python數據分析類工作。
Python數據分析高級篇(第8~15章):著重介紹了Python在諸多數據分析模型中的應用,包括數據預處理、相關與回歸、分類、決策樹、關聯分析、降維等重要且經典的數據模型,還介紹了爬蟲的諸多實踐案例。有一定Python數據分析應用經驗的讀者,可以直接從這部分開始閱讀。通過學習這部分內容,讀者可以快速掌握Python數據分析的各種高級技法,從而成長為中高級數據分析人員。
致謝
首先,感謝閱讀本書的讀者,你們是我撰寫本書的動力,也是激勵我不斷前行的動力。
其次,感謝在撰寫本書過程中為我提供幫助的所有朋友。
最后,感謝我的家人,是家人承擔起繁重而瑣碎的家務,讓我能專心投入到寫作中,他們時時刻刻都給予我信心和力量!
紀賀元
知名數據分析專家,資深軟件工程師,曾就職于貝爾、摩托羅拉等多家知名企業,精通各類數據分析與挖掘技術,以及Excel、VBA、Python、PowerBI等數據分析軟件工具。
曾基于VBA和Python開發多個應用系統,負責過多家企業的數據報表、流程支撐、市場調查、企業數據分析等項目,為金融、汽車、制造等多個行業的數十家企業提供過數據分析咨詢服務,在數據分析、數字化系統開發部署、數據分析培訓和咨詢等方面擁有豐富的經驗。尤其在數據分析培訓領域,現已工作17年,授課總計超過1萬小時,已幫助近萬名學員順利進入數據分析領域。
前 言
Python基礎篇
第1章 學習Python的優勢 2
1.1 Python的特色 2
1.1.1 代碼簡單易懂 3
1.1.2 包羅萬象的Python包 5
1.1.3 超高的知名度和廣泛的應用面 6
1.2 學習Python的收獲 7
1.2.1 工作效率的提升 7
1.2.2 工作能力的增強 7
1.2.3 職場競爭力的提高 8
1.3 如何高效地學習Python 8
1.3.1 打好編程基礎 8
1.3.2 多攢代碼 8
1.3.3 精通代碼調試 9
1.3.4 面向實際工作場景 10
第2章 Python的工作環境 11
2.1 Python工作環境的構成 11
2.1.1 核心的Python軟件 11
2.1.2 Anaconda 12
2.1.3 IDE 13
2.2 安裝過程中的常見問題 14
2.3 Python的兩種解釋器 14
2.4 包的安裝 22
2.4.1 在線安裝 22
2.4.2 離線安裝 23
2.5 PyCharm中的解釋器配置 26
2.5.1 兩種解釋器的配置 27
2.5.2 Anaconda中第三方包的配置 31
2.6 編譯.py文件生成.exe文件 33
第3章 Python編程基礎 38
3.1 與文件系統相關的5個常見問題 38
3.2 編碼格式 43
3.3 Python編程中的特殊之處 45
3.4 Python中的數據結構 46
3.4.1 序列 47
3.4.2 列表 49
3.4.3 元組 51
3.4.4 字典 52
3.4.5 集合 57
3.5 Python基礎語句 59
第4章 Python程序調試 62
4.1 程序調試的常識 62
4.2 Python代碼的常見錯誤類型 63
4.3 程序調試方法 64
4.3.1 程序調試的基本操作 64
4.3.2 程序調試的基本方法 77
第5章 Excel和Text文件的讀寫操作 79
5.1 Text文件讀寫包 79
5.2 Excel讀寫的四重循環 81
5.3 openpyxl包 83
5.4 xlsxwriter包 87
第6章 數據處理神器pandas 90
6.1 pandas的安裝 90
6.2 pandas的數據結構 91
6.3 pandas數據處理 96
6.3.1 從Excel文件中讀取數據 96
6.3.2 切片 97
6.3.3 排序、篩選與分類匯總 100
6.3.4 數據合并 105
6.4 pandas統計分析 111
6.4.1 統計分析指標 111
6.4.2 pandas繪圖 116
6.5 其他pandas功能 117
第7章 Matplotlib圖形呈現包 118
7.1 Matplotlib包介紹 118
7.2 利用Matplotlib包繪圖 119
7.2.1 折線圖 119
7.2.2 散點圖 125
7.2.3 柱狀圖 126
7.2.4 餅圖 126
7.2.5 直方圖 131
7.3 圖形部件繪制代碼 132
7.4 綜合繪圖示例 135
Python數據分析高級篇
第8章 數據預處理 140
8.1 數據預處理的目標和方法 140
8.1.1 縮放法 141
8.1.2 分段轉換 144
8.1.3 定性數據定量化 144
8.1.4 數據填充 145
8.2 Python數據預處理的方法 147
第9章 數據分析的常見問題和方法 150
9.1 數據分析的常見問題 150
9.1.1 數據采集問題 150
9.1.2 數據描述問題 151
9.1.3 數據間關系的界定和挖掘問題 151
9.1.4 時間序列(預測)問題 152
9.2 數據分析的常見方法 152
9.2.1 標識分析法 152
9.2.2 排序分析法 154
9.2.3 漏斗分析法 154
9.2.4 二八分析法 156
9.2.5 異常值分析法 158
9.2.6 對比分析法 164
9.2.7 分組(類)分析法 166
9.2.8 因果關系判斷法 166
9.2.9 假設排除分析法 167
9.2.10 趨勢分析法 167
第10章 相關與回歸 169
10.1 相關 169
10.1.1 相關分析的含義 169
10.1.2 相關分析在Excel軟件中的實現 171
10.1.3 相關分析在Python中的實現 176
10.2 回歸 178
10.2.1 線性回歸 180
10.2.2 非線性回歸 183
10.2.3 多元線性回歸 186
10.2.4 Logistic回歸 187
第11章 分類 192
11.1 KNN算法 193
11.2 聚類原理 196
11.3 聚類在Python中的實現 198
第12章 決策樹 202
12.1 決策樹原理 203
12.2 決策樹代碼解析 204
第13章 關聯分析 210
13.1 關聯分析原理 211
13.2 關聯分析的數據預處理 215
13.3 關聯分析代碼解析 216
第14章 降維 220
14.1 為什么要降維 221
14.2 用Python實現主成分分析 223
第15章 通過爬蟲獲取數據的方法與實踐 227
15.1 爬蟲基本原理 228
15.2 爬蟲爬取的內容 228
15.3 爬蟲實踐 229
15.3.1