目 錄
前言 xvii
第 一部分 NumPy篇
第 1章 數據分析概述 3
1.1 數據分析簡介 3
1.1.1 數據科學是什么? 3
1.1.2 數據分析是什么? 4
1.1.3 應該學些什么? 4
1.2 課程介紹 6
1.2.1 課程說明 6
1.2.2 常見問題 6
1.3 使用 VSCode 7
1.3.1 安裝 VSCode 7
1.3.2 安裝插件 8
1.3.3 運行代碼 9
第 2章 NumPy基礎 11
2.1 NumPy是什么? 11
2.2 創(chuàng)建數組 12
2.2.1 基本方法 12
2.2.2 隨機數組 18
2.2.3 數組與列表的區(qū)別 21
2.3 數組屬性 22
2.4 元素操作 24
2.4.1 訪問元素 25
2.4.2 修改元素 26
2.4.3 添加元素 26
2.4.4 刪除元素 28
2.4.5 切片 29
2.5 數組操作 31
2.5.1 修改形狀 31
2.5.2 修改維度 33
2.5.3 翻轉數組 34
2.5.4 數組去重 34
2.5.5 合并數組 35
2.5.6 分割數組 37
2.6 各種運算 39
2.6.1 基本運算 39
2.6.2 比較運算 41
2.6.3 標量運算 42
2.6.4 數學函數 43
2.6.5 統(tǒng)計函數 45
2.7 遍歷數組 53
2.8 大小排序 55
2.9 本章練習 57
第3章 NumPy進階 58
3.1 淺拷貝和深拷貝 58
3.1.1 淺拷貝 58
3.1.2 深拷貝 59
3.2 axis的值 60
3.3 廣播機制 61
3.3.1 維數不同 61
3.3.2 維數相同 63
3.3.3 標量運算 64
3.4 讀寫文件 65
3.4.1 讀取文件 65
3.4.2 寫入文件 66
3.5 矩陣簡介 67
3.5.1 全0矩陣 68
3.5.2 全1矩陣 69
3.5.3 單位矩陣 69
3.5.4 隨機矩陣 70
3.6 本章練習 71
第二部分 Pandas篇
第4章 Pandas簡介 75
4.1 Pandas是什么? 75
4.2 Series 76
4.2.1 創(chuàng)建Series 76
4.2.2 Series的屬性 78
4.2.3 獲取某行的值 78
4.2.4 深入了解 79
4.3 DataFrame 79
4.3.1 創(chuàng)建DataFrame 79
4.3.2 DataFrame的屬性 83
4.3.3 深入了解 86
4.4 DataFrame的數據操作 88
4.4.1 訪問數據 88
4.4.2 修改數據 95
4.4.3 添加數據 96
4.4.4 刪除數據 98
4.5 遍歷行列 101
4.5.1 遍歷行 101
4.5.2 遍歷列 102
4.6 深入了解 103
4.7 本章練習 105
第5章 獲取數據 107
5.1 數據分析流程 107
5.2 讀寫數據簡介 108
5.3 讀寫JSON 109
5.3.1 JSON簡介 109
5.3.2 讀取JSON 110
5.3.3 寫入JSON 111
5.4 讀寫CSV 113
5.4.1 CSV簡介 113
5.4.2 讀取CSV 114
5.4.3 寫入CSV 116
5.5 讀寫Excel 117
5.5.1 Excel簡介 117
5.5.2 讀取Excel 118
5.5.3 寫入Excel 119
5.6 讀寫HTML 120
5.7 深入文件讀取 122
5.7.1 分塊讀取 122
5.7.2 只讀取一部分 124
5.8 讀取數據庫 125
5.8.1 安裝MySQL 125
5.8.2 安裝Navicat for MySQL 129
5.8.3 讀取MySQL 134
5.9 本章練習 136
第6章 篩選數據 137
6.1 篩選數據簡介 137
6.2 獲取行、列:loc[]、iloc[]和df[] 138
6.2.1 獲取行 138
6.2.2 獲取列 139
6.3 重新索引:reindex() 141
6.3.1 語法簡介 141
6.3.2 深入了解 143
6.4 獲取首尾數據:head()和tail() 145
6.5 隨機抽樣:sample() 147
6.6 邏輯比較 149
6.6.1 語法簡介 149
6.6.2 深入了解 152
6.7 過濾操作 155
6.7.1 query() 155
6.7.2 filter() 157
6.8 模式匹配 159
6.9 本章練習 162
第7章 處理數據 164
7.1 處理數據簡介 164
7.2 操作行名和列名 165
7.2.1 設置某一列為行名 165
7.2.2 重置行名 166
7.2.3 修改行名和列名 168
7.3 類型轉換 171
7.3.1 針對DataFrame 171
7.3.2 針對某一列 174
7.4 行列轉置:T 175
7.5 大小排序:sort_values() 176
7.6 數據排名:rank() 179
7.7 數據替換:replace() 181
7.8 數據移動:shift() 183
7.9 數據清洗 185
7.9.1 缺失值 186
7.9.2 重復值 192
7.9.3 異常值 196
7.10 數據合并 197
7.10.1 軸向合并:concat() 198
7.10.2 主鍵合并:merge() 203
7.10.3 行列連接:join() 207
7.10.4 縱向合并:append() 208
7.11 字符串處理 209
7.11.1 獲取長度:len() 210
7.11.2 統(tǒng)計次數:count() 211
7.11.3 去除空格:strip() 212
7.11.4 替換字符串:replace() 213
7.11.5 分割字符串:split() 214
7.11.6 重復字符串:repeat() 215
7.11.7 連接列:cat() 216
7.11.8 大小寫轉換 219
7.11.9 判斷類型 220
7.11.10 判斷包含 221
7.12 自定義函數 222
7.12.1 map() 222
7.12.2 apply() 224
7.12.3 applymap() 226
7.13 實戰(zhàn)題:處理天氣數據 227
7.14 實戰(zhàn)題:拆分數據 229
7.15 本章練習 230
第8章 分析數據 232
8.1 分析數據簡介 232
8.2 基本統(tǒng)計函數 232
8.2.1 求和:sum() 233
8.2.2 統(tǒng)計個數:count() 235
8.2.3 求最值:max()與min() 236
8.2.4 求中位數:median() 238
8.2.5 求眾數:mode() 239
8.2.6 求平均數:mean() 240
8.2.7 求方差:var() 241
8.2.8 求標準差:std() 242
8.2.9 求分位數:quantile() 243
8.3 其他統(tǒng)計函數 244
8.3.1 統(tǒng)計取值種類 244
8.3.2 統(tǒng)計取值個數 245
8.3.3 求變化百分比 246
8.3.4 求最值的行名 247
8.4 整體情況 247
8.4.1 describe() 248
8.4.2 info() 248
8.5 聚合函數:agg() 249
8.6 數據分組 252
8.6.1 基本語法 252
8.6.2 統(tǒng)計分析 256
8.7 實戰(zhàn)題:求平均壽命 258
8.8 本章練習 259
第9章 時間序列 260
9.1 時間序列概述 260
9.1.1 時間序列簡介 260
9.1.2 轉換類型 261
9.1.3 獲取日期 264
9.1.4 索引與切片 266
9.2 重采樣:resample() 268
9.2.1 降采樣 268
9.2.2 升采樣 271
9.3 移動計算:rolling() 273
9.4 分組器:Grouper() 274
9.5 實戰(zhàn)題:求每個月的銷量總和 276
9.6 本章練習 277
第 10章 高級技術 279
10.1 透視表 279
10.1.1 透視表簡介 279
10.1.2 統(tǒng)計函數 281
10.2 交叉表 282
10.3 層次化索引 284
10.3.1 層次化索引簡介 284
10.3.2 常用操作 286
10.4 離散化處理 292
10.4.1 離散化簡介 292
10.4.2 常用參數 293
10.5 啞變量處理 296
10.6 實戰(zhàn)題:創(chuàng)建透視表 298
10.7 本章練習 299
第 11章 其他操作 300
11.1 廣播機制 300
11.2 索引對象 301
11.3 inplace參數 304
11.4 缺失值 306
11.5 實戰(zhàn)題:統(tǒng)計每一列的缺失值個數 307
11.6 本章練習 308
第三部分 Matplotlib篇
第 12章 基礎圖表 313
12.1 Matplotlib簡介 313
12.2 基本繪圖(折線圖) 315
12.2.1 基本語法 315
12.2.2 定義樣式 317
12.3 通用設置 325
12.3.1 畫布樣式 325
12.3.2 定義標題 326
12.3.3 定義圖例 330
12.3.4 刻度標簽 332
12.3.5 刻度范圍 335
12.3.6 網格線 338
12.3.7 參考線 340
12.3.8 參考區(qū)域 343
12.3.9 注釋文本(有指向) 345
12.3.10 注釋文本(無指向) 347
12.4 通用樣式 350
12.5 散點圖 350
12.5.1 基本語法 350
12.5.2 定義樣式 352
12.5.3 氣泡圖 354
12.6 柱形圖 356
12.6.1 基本語法 356
12.6.2 高級柱形圖 358
12.6.3 條形圖 361
12.7 直方圖 362
12.7.1 基本語法 362
12.7.2 定義樣式 364
12.8 餅狀圖 366
12.8.1 基本語法 366
12.8.2 定義樣式 367
12.8.3 圓環(huán)圖 372
12.9 實戰(zhàn)題:繪制氣溫折線圖 373
12.10 實戰(zhàn)題:瀏覽器所占市場份額柱形圖 375
第 13章 高級圖表 378
13.1 高級圖表簡介 378
13.2 箱線圖 378
13.2.1 基本語法 378
13.2.2 樣式定義 381
13.3 面積圖 387
13.3.1 基本語法 387
13.3.2 高級面積圖 388
13.4 棉棒圖 389
13.4.1 基本語法 389
13.4.2 定義樣式 390
13.5 熱力圖 393
13.5.1 基本語法 393
13.5.2 定義樣式 394
13.6 子圖表 395
13.6.1 基本語法 395
13.6.2 實際案例 398
13.7 實戰(zhàn)題:使用箱線圖查找異常值 399
13.8 實戰(zhàn)題:繪制每月銷量的棉棒圖 401
第四部分 工具篇
第 14章 Jupyter Notebook 407
14.1 Jupyter Notebook簡介 407
14.2 Jupyter Notebook的使用 408
14.2.1 安裝Anaconda 409
14.2.2 運行Jupyter Notebook 409
14.3 應用場景 411
14.4 常用技巧 414
14.4.1 問號查詢 414
14.4.2 輸出多個變量 415
14.4.3 讀取文件 417
第五部分 附錄
附錄A 讀寫文件(Pandas) 422
附錄B 統(tǒng)計函數(Pandas) 423
附錄C 繪圖函數(Matplotlib)424