對比 Excel,輕鬆學習 Python 數據分析

張俊紅

買這商品的人也買了...

相關主題

商品描述

集Python、Excel、數據分析為一體是本書的一大特色。

本書圍繞整個數據分析的常規流程:工具熟悉-獲取數據-數據熟悉-數據處理-數據分析-分析結果進行Excel 和Python 對比實現,告訴你每一個過程中都會用到什麼?過程與過程之間有什麼聯繫。

這樣一本書既可以作為系統學習數據分析流程操作的說明書,也可以作為一本數據分析師案頭必備的實操工具書,隨時備查。

本書通過對比Excel 功能操作去學習Python 的實現代碼,而不是直接上來就學習Python代碼,大大降低了學習門檻,消除了讀者對代碼的恐懼心理。

適合剛入行的數據分析師,也適合對Excel 比較熟練的數據分析師,或從事其他崗位想提高工作效率的職場人。

目錄大綱

目錄
入門篇
第1 章 數據分析基礎 . 2
1.1 數據分析是什麽  2
1.2 為什麽要做數據分析  2
1.2.1 現狀分析 . 3
1.2.2 原因分析 . 3
1.2.3 預測分析 . 3
1.3 數據分析究竟在分析什麽  4
1.3.1 總體概覽指標 . 4
1.3.2 對比性指標 . 4
1.3.3 集中趨勢指標 . 4
1.3.4 離散程度指標 . 5
1.3.5 相關性指標 . 5
1.3.6 相關關系與因果關系 . 6
1.4 數據分析的常規流程  6
1.4.1 熟悉工具 . 6
1.4.2 明確目的 . 7
1.4.3 獲取數據 . 7
1.4.4 熟悉數據 . 7
1.4.5 處理數據 . 7
1.4.6 分析數據 . 8
1.4.7 得出結論 . 8
1.4.8 驗證結論 . 8
1.4.9 展示結論 . 8
1.5 數據分析工具:Excel 與Python .. 8

實踐篇
第2 章 熟悉鍋——Python 基礎知識 . 12
2.1 Python 是什麽 .. 12
2.2 Python 的下載與安裝 .. 13
2.2.1 安裝教程 ... 13
2.2.2 IDE 與IDLE . 17
2.3 介紹Jupyter Notebook  17
2.3.1 新建Jupyter Notebook 文件  17
2.3.2 運行你的第一段代碼 ... 19
2.3.3 重命名Jupyter Notebook 文件  19
2.3.4 保存Jupyter Notebook 文件  19
2.3.5 導入本地Jupyter Notebook 文件  20
2.3.6 Jupyter Notebook 與Markdown ... 21
2.3.7 為Jupyter Notebook 添加目錄  21
2.4 基本概念 .. 26
2.4.1 數 ... 26
2.4.2 變量 ... 26
2.4.3 標識符 ... 27
2.4.4 數據類型 ... 28
2.4.5 輸出與輸出格式設置 ... 28
2.4.6 縮進與註釋 ... 29
2.5 字符串 .. 30
2.5.1 字符串的概念 ... 30
2.5.2 字符串的連接 ... 30
2.5.3 字符串的復制 ... 30
2.5.4 獲取字符串的長度 ... 30
2.5.5 字符串查找 ... 31
2.5.6 字符串索引 ... 31
2.5.7 字符串分隔 ... 32
2.5.8 移除字符 ... 32
2.6 數據結構——列表 .. 33
2.6.1 列表的概念 ... 33
2.6.2 新建一個列表 ... 33
2.6.3 列表的復制 ... 34
2.6.4 列表的合並 ... 34
2.6.5 向列表中插入新元素 ... 34
2.6.6 獲取列表中值出現的次數 ... 35
2.6.7 獲取列表中值出現的位置 ... 35
2.6.8 獲取列表中指定位置的值 ... 36
2.6.9 刪除列表中的值 ... 36
2.6.10 對列表中的值進行排序 . 37
2.7 數據結構——字典 .. 37
2.7.1 字典的概念 ... 37
2.7.3 字典的keys()、values()和items()方法 ... 37
2.8 數據結構——元組 .. 38
2.8.1 元組的概念 ... 38
2.8.2 新建一個元組 ... 38
2.8.3 獲取元組的長度 ... 38
2.8.4 獲取元組內的元素 ... 39
2.8.5 元組與列表相互轉換 ... 39
2.8.6 zip()函數 ... 39
2.9 運算符 .. 40
2.9.1 算術運算符 ... 40
2.9.2 比較運算符 ... 40
2.9.3 邏輯運算符 ... 41
2.10 循環語句  41
2.10.1 for 循環 ... 41
2.10.2 while 循環 ... 42
2.11 條件語句  43
2.11.1 if 語句 . 43
2.11.2 else 語句 .. 44
2.11.3 elif 語句 .. 45
2.12 函數  46
2.12.1 普通函數 . 47
2.12.2 匿名函數 . 48
2.13 高級特性  49
2.13.1 列表生成式 . 49
2.13.2 map 函數 . 50
2.14 模塊  50

第3 章 Pandas 數據結構 . 51
3.1 Series 數據結構 ... 51
3.1.1 Series 是什麽  51
3.1.2 創建一個Series  52
3.1.3 利用index 方法獲取Series 的索引  53
3.1.4 利用values 方法獲取Series 的值 ... 53
3.2 DataFrame 表格型數據結構 ... 53
3.2.1 DataFrame 是什麽  53
3.2.2 創建一個DataFrame  54
3.2.3 獲取DataFrame 的行、列索引 ... 56
3.2.4 獲取DataFrame 的值 ... 56

第4 章 準備食材——獲取數據源 .. 57
4.1 導入外部數據 .. 57
4.1.1 導入.xlsx 文件 .. 57
4.1.2 導入.csv 文件 ... 60
4.1.3 導入.txt 文件  63
4.1.4 導入sql 文件  65
4.2 新建數據 .. 67
4.3 熟悉數據 .. 67
4.3.1 利用head 預覽前幾行 . 67
4.3.2 利用shape 獲取數據表的大小  68
4.3.3 利用info 獲取數據類型 .. 69
4.3.4 利用describe 獲取數值分佈情況  71

第5 章 淘米洗菜——數據預處理 .. 73
5.1 缺失值處理 .. 73
5.1.1 缺失值查看 ... 73
5.1.2 缺失值刪除 ... 75
5.1.3 缺失值填充 ... 77
5.2 重復值處理 .. 78
5.3 異常值的檢測與處理 .. 81
5.3.1 異常值檢測 ... 81
5.3.2 異常值處理 ... 82
5.4 數據類型轉換 .. 83
5.4.1 數據類型 ... 83
5.4.2 類型轉換 ... 84
5.5 索引設置 .. 86
5.5.1 為無索引表添加索引 ... 86
5.5.2 重新設置索引 ... 87
5.5.3 重命名索引 ... 88
5.5.4 重置索引 ... 89

第6 章 菜品挑選——數據選擇 . 91
6.1 列選擇 .. 91
6.1.1 選擇某一列/某幾列 .. 91
6.1.2 選擇連續的某幾列 ... 92
6.2 行選擇 .. 93
6.2.1 選擇某一行/某幾行 .. 93
6.2.2 選擇連續的某幾行 ... 94
6.2.3 選擇滿足條件的行 ... 95
6.3 行列同時選擇 .. 96
6.3.1 普通索引+普通索引選擇指定的行和列 . 97
6.3.2 位置索引+位置索引選擇指定的行和列 . 97
6.3.3 布爾索引+普通索引選擇指定的行和列 . 98
6.3.4 切片索引+切片索引選擇指定的行和列 . 98
6.3.5 切片索引+普通索引選擇指定的行和列 . 99

第7 章 切配菜品——數值操作 ... 100
7.1 數值替換  100
7.1.1 一對一替換 . 100
7.1.2 多對一替換 . 102
7.1.3 多對多替換 . 103
7.2 數值排序  104
7.2.1 按照一列數值進行排序 . 104
7.2.2 按照有缺失值的列進行排序 . 106
7.2.3 按照多列數值進行排序 . 106
7.3 數值排名  108
7.4 數值刪除 . 110
7.4.1 刪除列 .. 110
7.4.2 刪除行 .. 111
7.4.3 刪除特定行 .. 112
7.5 數值計數 . 113
7.6 唯一值獲取 . 114
7.7 數值查找 . 115
7.8 區間切分 . 116
7.9 插入新的行或列 . 119
7.10 行列互換 .. 120
7.11 索引重塑 .. 121
7.12 長寬表轉換 .. 122
7.12.1 寬表轉換為長表 ... 123
7.12.2 長表轉換為寬表 ... 125
7.13 apply()與applymap()函數 ... 126

第8 章 開始烹調——數據運算 ... 127
8.1 算術運算  127
8.2 比較運算  128
8.3 匯總運算  129
8.3.1 count 非空值計數 ... 129
8.3.2 sum 求和 . 130
8.3.3 mean 求均值 ... 130
8.3.4 max 求最大值 . 131
8.3.5 min 求最小值 . 132
8.3.6 median 求中位數  132
8.3.7 mode 求眾數 ... 133
8.3.8 var 求方差 ... 134
8.3.9 std 求標準差 ... 134
8.3.10 quantile 求分位數 . 135
8.4 相關性運算  136

第9 章 炒菜計時器——時間序列  138
9.1 獲取當前時刻的時間  138
9.1.1 返回當前時刻的日期和時間 . 138
9.1.2 分別返回當前時刻的年、月、日 . 138
9.1.3 返回當前時刻的周數 . 139
9.2 指定日期和時間的格式  140
9.3 字符串和時間格式相互轉換  141
9.3.1 將時間格式轉換為字符串格式 . 141
9.3.2 將字符串格式轉換為時間格式 . 141
9.4 時間索引  142
9.5 時間運算  145
9.5.1 兩個時間之差 . 145
9.5.2 時間偏移 . 145

第10 章 菜品分類——數據分組/數據透視表 .. 148
10.1 數據分組 .. 148
10.1.1 分組鍵是列名 ... 150
10.1.2 分組鍵是Series  151
10.1.3 神奇的aggregate 方法 . 152
10.1.4 對分組後的結果重置索引 ... 153
10.2 數據透視表 .. 154

第11 章 水果拼盤——多表拼接 . 158
11.1 表的橫向拼接 .. 158
11.1.1 連接表的類型 ... 158
11.1.2 連接鍵的類型 ... 160
11.1.3 連接方式 ... 163
11.1.4 重復列名處理 ... 165
11.2 表的縱向拼接 .. 165
11.2.1 普通合並 ... 166
11.2.2 索引設置 ... 167
11.2.3 重疊數據合並 ... 167

第12 章 盛菜裝盤——結果導出 . 169
12.1 導出為.xlsx 文件 . 169
12.1.1 設置文件導出路徑 ... 170
12.1.2 設置Sheet 名稱  170
12.1.3 設置索引 ... 170
12.1.4 設置要導出的列 ... 171
12.1.5 設置編碼格式 ... 171
12.1.6 缺失值處理 ... 172
12.1.7 無窮值處理 ... 172
12.2 導出為.csv 文件 ... 173
12.2.1 設置文件導出路徑 ... 173
12.2.2 設置索引 ... 174
12.2.3 設置要導出的列 ... 174
12.2.4 設置分隔符號 ... 174
12.2.5 缺失值處理 ... 174
12.2.6 設置編碼格式 ... 175
12.3 將文件導出到多個Sheet  175

第13 章 菜品擺放——數據可視化 .. 176
13.1 數據可視化是什麽 .. 176
13.2 數據可視化的基本流程 .. 176
13.2.1 整理數據 ... 176
13.2.2 明確目的 ... 177
13.2.3 尋找合適的表現形式 ... 177
13.3 圖表的基本組成元素 .. 177
13.4 Excel 與Python 可視化 ... 179
13.5 建立畫布和坐標系 .. 179
13.5.1 建立畫布 ... 179
13.5.2 用add_subplot 函數建立坐標系 . 180
13.5.3 用plt.subplot2grid 函數建立坐標系  182
13.5.4 用plt.subplot 函數建立坐標系  183
13.5.5 用plt.subplots 函數建立坐標系 .. 184
13.5.6 幾種創建坐標系方法的區別 ... 185
13.6 設置坐標軸 .. 185
13.6.1 設置坐標軸的標題 ... 185
13.6.2 設置坐標軸的刻度 ... 187
13.6.3 設置坐標軸的範圍 ... 190
13.6.4 坐標軸的軸顯示設置 ... 191
13.7 其他圖表格式的設置 .. 191
13.7.1 網格線設置 ... 191
13.7.2 設置圖例 ... 193
13.7.3 圖表標題設置 ... 195
13.7.4 設置數據標簽 ... 197
13.7.5 圖表註釋 ... 198
13.7.6 數據表 ... 199
13.8 繪制常用圖表 .. 201
13.8.1 繪制折線圖 ... 201
13.8.2 繪制柱形圖 ... 204
13.8.3 繪制條形圖 ... 208
13.8.4 繪制散點圖 ... 209
13.8.5 繪制氣泡圖  211
13.8.6 繪制面積圖 ... 212
13.8.7 繪制樹地圖 ... 213
13.8.8 繪制雷達圖 ... 215
13.8.9 繪制箱形圖 ... 217
13.8.10 繪制餅圖 . 218
13.8.11 繪制圓環圖 . 220
13.8.12 繪制熱力圖 . 221
13.8.13 繪制水平線和垂直線 . 223
13.9 繪制組合圖表 .. 224
13.9.1 折線圖+折線圖  224
13.9.2 折線圖+柱形圖  225
13.10 繪制雙坐標軸圖表  226
13.10.1 繪制雙y 軸圖表 . 227
13.10.2 繪制雙x 軸圖表 . 228
13.11 繪圖樣式設置  228

進階篇
第14 章 典型數據分析案例  234
14.1 利用Python 實現報表自動化 . 234
14.1.1 為什麽要進行報表自動化 ... 234
14.1.2 什麽樣的報表適合自動化 ... 234
14.1.3 如何實現報表自動化 ... 235
14.2 自動發送電子郵件 .. 239
14.3 假如你是某連鎖超市的數據分析師 .. 241
14.3.1 哪些類別的商品比較暢銷 ... 242
14.3.2 哪些商品比較暢銷 ... 242
14.3.3 不同門店的銷售額占比 ... 243
14.3.4 哪些時間段是超市的客流高峰期 ... 244
14.4 假如你是某銀行的數據分析師 .. 245
14.4.1 是不是收入越高的人壞賬率越低 ... 246
14.4.2 年齡和壞賬率有什麽關系 ... 247
14.4.3 家庭人口數量和壞賬率有什麽關系 ... 248

第15 章 NumPy 數組 . 250
15.1 NumPy 簡介 . 250
15.2 NumPy 數組的生成 . 250
15.2.1 生成一般數組 ... 251
15.2.2 生成特殊類型數組 ... 251
15.2.3 生成隨機數組 ... 253
15.3 NumPy 數組的基本屬性 . 255
15.4 NumPy 數組的數據選取 . 256
15.4.1 一維數據選取 ... 256
15.4.2 多維數據選取 ... 257
15.5 NumPy 數組的數據預處理 . 259
15.5.1 NumPy 數組的類型轉換 .. 259
15.5.2 NumPy 數組的缺失值處理 .. 260
15.5.3 NumPy 數組的重復值處理 .. 260
15.6 NumPy 數組重塑 . 261
15.6.1 一維數組重塑 ... 261
15.6.2 多維數組重塑 ... 261
15.6.3 數組轉置 ... 262
15.7 NumPy 數組合並 . 262
15.7.1 橫向合並 ... 262
15.7.2 縱向合並 ... 263
15.8 常用數據分析函數 .. 264
15.8.1 元素級函數 ... 264
15.8.2 描述統計函數 ... 264
15.8.3 條件函數 ... 266
15.8.4 集合關系 ... 266