前言
為什么要寫這本書
作為一名數據分析師,在日常工作中或多或少都會涉及報表制作的工作。雖然我在《對比Excel,輕松學習Python 數據分析》一書中介紹了數據分析涉及的一些基本操作,但更多是從分析層面出發(fā)的,比如如何處理異常值、如何進行可視化等。而在實際的報表制作中,會用到很多函數及格式設置,比如調整字體的大小、顏色等,所以本書將圍繞報表制作的流程,通過對比Excel 的方式來講解報表制作中每個環(huán)節(jié)對應的Python 代碼如何實現。
為什么要學習報表自動化
數據分析師的一項重要工作就是制作報表,不同數據分析師制作報表的工作量比重是不一樣的,有的人比較多,有的人比較少。數據分析師的核心價值其實不是做報表,而是通過報表去發(fā)現業(yè)務問題,從而提出優(yōu)化建議。但是如果制作報表耗費的時間太多,就會導致沒有時間去做深入分析,畢竟人的精力是有限的。所以我們要盡可能地實現報表自動化,從而留出更多的時間去做分析。
本書學習建議
學習Python,關鍵是練習。建議讀者在閱讀本書后,看一下自己工作中的哪個報表能夠用書中學到的知識實現,先逼自己實現個,再實現第二個,……。剛開始會比較痛苦、比較慢,可能寫代碼要比自己手動做還要慢,不要緊,只要邁出了步,后面就會越來越熟練,越來越快。
本書寫了什么
本書主要分為4 個部分:第1 部分介紹Python 基礎知識,讓讀者對Python 中常用的操作和概念有所了解;第2 部分介紹格式相關的設置方法,包括字體設置、條件格式設置等內容;第3 部分介紹各種類型的函數;第4 部分介紹自動化相關的其他技能,比如自動發(fā)送郵件、自動打包等操作。
本書讀者對象
本書適合每天需要做很多報表,希望通過學習報表自動化來提高工作效率的所有讀者,包括但不限于分析師、數據運營、財務等人群。
本書說明
關于本書用到的安裝包、數據集、代碼等資源,讀者可以通過關注我的個人公眾號俊紅的數據分析之路(ID:zhangjunhong0428)下載并使用。
目錄
第1 部分 Python 基礎
第1 章 認識自動化報表 / 2
1.1 Excel 的基本組成 2
1.2 制作一份自動化報表的流程3
1.3 用Python 操作Excel 的各種庫 . 4
第2 章 Python 基礎知識 / 5
2.1 Python 是什么5
2.2 Python 的下載與安裝. 5
2.2.1 安裝教程. 5
2.2.2 IDE 與IDLE . 18
2.3 Jupyter Notebook 介紹 19
2.3.1 新建Jupyter Notebook 文件 19
2.3.2 運行你的段代碼 20
2.3.3 重命名Jupyter Notebook 文件20
2.3.4 保存Jupyter Notebook 文件 21
2.3.5 導入本地Jupyter Notebook 文件 22
2.3.6 Jupyter Notebook 與Markdown. 23
2.4 基本概念23
2.4.1 數. 23
2.4.2 變量 24
2.4.3 標識符. 25
2.4.4 數據類型25
2.4.5 輸出與輸出格式設置. 25
2.4.6 縮進與注釋 26
2.5 字符串 27
2.5.1 字符串概念27
2.5.2 字符串連接. 27
2.5.3 字符串復制. 28
2.5.4 字符串長度 28
2.5.5 字符串查找28
2.5.6 字符串索引29
2.5.7 字符串分隔30
2.5.8 字符刪除 31
2.6 數據結構列表 31
2.6.1 列表概念31
2.6.2 新建一個列表31
2.6.3 列表復制 32
2.6.4 列表合并. 32
2.6.5 向列表中插入新的元素 33
2.6.6 獲取列表中值出現的次數 33
2.6.7 獲取列表中值出現的位置 34
2.6.8 獲取列表中指定位置的值 34
2.6.9 對列表中的值進行刪除35
2.6.10 對列表中的值進行排序35
2.7 數據結構字典35
2.7.1 字典概念 35
2.7.2 新建一個字典 36
2.7.3 字典的keys()、values()和items()方法36
2.8 數據結構元組37
2.8.1 元組概念 37
2.8.2 新建一個元組 37
2.8.3 獲取元組的長度. 37
2.8.4 獲取元組內的元素 37
2.8.5 元組與列表相互轉換. 38
2.8.6 zip()函數38
2.9 運算符39
2.9.1 算術運算符. 39
2.9.2 比較運算符 39
2.9.3 邏輯運算符. 40
2.10 循環(huán)語句 40
2.10.1 for 循環(huán) . 40
2.10.2 while 循環(huán) 40
2.11 條件語句 41
2.11.1 if 條件語句 41
2.11.2 else 語句 43
2.11.3 elif 語句 44
2.12 函數. 45
2.12.1 普通函數 45
2.12.2 匿名函數. 46
2.13 高級特性 47
2.13.1 列表生成式. 47
2.13.2 map()函數 48
2.14 庫. 48
2.14.1 安裝一個新庫 49
2.14.2 卸載一個庫. 50
第2 部分 格式設置
第3 章 用Python 對報表進行基本操作 / 52
3.1 打開已有的工作簿 52
3.2 創(chuàng)建新的工作簿 54
3.2.1 在創(chuàng)建工作簿時插入數據 54
3.2.2 對單個單元格賦值. 55
3.2.3 對一行單元格賦值 . 55
3.2.4 對多行進行賦值. 56
3.3 Pandas 與openpyxl 之間的轉換 57
3.4 Sheet 相關設置 58
3.4.1 新建一個Sheet58
3.4.2 對已有Sheet 進行設置 61
第4 章 用Python 實現單元格選擇和字體設置 / 63
4.1 用Python 選擇單元格 63
4.1.1 選擇單個單元格. 63
4.1.2 選擇多個單元格. 63
4.2 用Python 設置Excel 字體 . 64
4.2.1 基本字體相關設置. 64
4.2.2 單元格填充 68
4.2.3 邊框線設置 70
4.2.4 案例:批量設置單元格字體 74
第5 章 用Python 設置Excel 對齊方式 / 76
5.1 設置對齊方式 76
5.2 合并與解除單元格81
5.3 設置合并單元格樣式 83
5.4 案例:批量設置單元格對齊方式 83
第6 章 用Python 設置Excel 數字、條件格式 / 86
6.1 用Python 設置Excel 數字格式 . 86
6.2 用Python 設置Excel 條件格式 89
6.2.1 突出顯示單元格 . 90
6.2.2 數據條92
6.2.3 色階 96
6.2.4 圖標集 99
第7 章 用Python 設置Excel 單元格 / 105
7.1 插入行或列 105
7.2 刪除行或列 107
7.3 行高/列寬的設置 109
7.4 隱藏行或列 110
7.5 案例:批量設置多行/列的行高/列寬 111
第8 章 用Python 對Excel 進行編輯 / 113
8.1 數據排序 113
8.2 數據篩選 114
8.3 數據查找與替換 116
第3 部分 函數
第9 章 用Python 實現Excel 中的函數計算 / 118
9.1 函數中的常見錯誤 . 118
9.1.1 #DIV/0!錯誤 . 118
9.1.2 #N/A 錯誤 . 120
9.1.3 #VALUE!錯誤 . 124
9.1.4 #NAME?錯誤 125
9.1.5 #REF!錯誤125
9.2 邏輯函數 . 126
9.2.1 IF()函數:判斷條件是否滿足 . 126
9.2.2 AND()函數:判斷多個條件是否同時滿足129
9.2.3 OR()函數:判斷多個條件中是否有其中一個滿足 130
9.2.4 IFERROR()函數:對錯誤值進行處理 132
9.3 文本函數. 132
9.3.1 文本截取. 132
9.3.2 文本合并 138
9.3.3 文本查找與替換 142
9.4 日期與時間函數 . 150
9.4.1 獲取當前的日期、時間 150
9.4.2 獲取日期和時間中的某部分 152
9.4.3 日期時間的運算兩個日期之間的差值. 165
9.5 查找與引用. 168
9.5.1 VLOOKUP()函數:在多列以及多表中查找數據 168
9.5.2 ROWS()函數:獲取區(qū)域中的行數 . 170
9.5.3 COLUMNS()函數:獲取區(qū)域中的列數 . 171
9.6 數學和三角函數 . 172
9.6.1 常規(guī)計算函數 172
9.6.2 格式調整函數 . 176
9.6.3 指數與對數函數 . 183
9.7 統(tǒng)計函數 . 187
9.7.1 均值相關 . 187
9.7.2 計數相關. 190
9.7.3 值函數 . 193
9.7.4 排位相關函數. 196
9.7.5 統(tǒng)計相關函數. 204
9.8 自定義公式 . 206
第4 部分 自動化報表
第10 章 審閱和視圖設置 / 210
10.1 新建批注 . 210
10.2 文檔保護 212
10.3 凍結窗格 213
第11 章 用Python 繪制Excel 圖表 / 216
11.1 圖表基本組成元素216
11.2 圖表繪制基本流程218
11.3 圖表基本設置 220
11.3.1 圖表標題 220
11.3.2 坐標軸標題220
11.3.3 圖例設置 . 221
11.4 圖表繪制. 221
11.4.1 折線圖 221
11.4.2 柱狀圖. 221
11.4.3 面積圖223
11.4.4 散點圖 . 224
11.4.5 氣泡圖 226
11.4.6 圖表布局. 228
11.5 如何將圖片插入Excel 中 229
第12 章 用Python 對Excel 文件進行批量操作 / 231
12.1 OS 庫介紹. 231
12.2 OS 庫基本操作. 231
12.2.1 獲取當前工作路徑 . 231
12.2.2 獲取一個文件夾下的所有文件名 231
12.2.3 對文件進行重命名232
12.2.4 創(chuàng)建一個文件夾. 232
12.2.5 刪除一個文件夾 . 233
12.2.6 刪除一個文件 233
12.3 批量操作 . 233
12.3.1 批量讀取一個文件夾下的多個文件 233
12.3.2 批量創(chuàng)建文件夾 234
12.3.3 批量重命名文件 235
12.4 其他批量操作 236
12.4.1 批量合并多個文件236
12.4.2 將一份文件按照指定列拆分成多個文件237
第13 章 自動發(fā)送郵件 / 239
13.1 使用郵箱的步 . 239
13.2 一份郵件的組成 . 239
13.3 如何發(fā)送郵件. 240
13.4 正式發(fā)送一份郵件241
13.5 批量發(fā)送郵件. 243
第14 章 將Python 代碼轉化為可執(zhí)行的程序 / 245
14.1 安裝所需要的Python 庫245
14.2 對代碼進行打包 246
第15 章 工作中的報表自動化實戰(zhàn) / 249
15.1 當日各項指標的同/環(huán)比情況 249
15.2 當日各省份創(chuàng)建訂單量情況 253
15.3 近一段時間創(chuàng)建訂單量趨勢. 255
15.4 將不同的結果進行合并256
15.4.1 將不同的結果合并到同一個Sheet 中 256
15.4.2 將不同的結果合并到同一工作簿的不同Sheet 中261