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