內容簡介
本書主要從實戰角度講述了如何處理、分析和可視化數據,如何用數據建立各種統計學或機器學習模型。本書首先介紹如何使用Python代碼獲取、轉換和分析數據;接著講述如何使用Python中的數據結構和第三方庫;然後展示如何以各種格式載入數據,如何對數據進行分組與匯總,如何創建圖表和可視化數據;最後討論如何解決實際的問題。
本書適合希望使用Python處理和分析數據的開發人員閱讀,也可供計算機相關專業的師生參考。
圖書目錄
第 1章 數據的基礎知識 1
1.1 數據類別 1
1.1.1 非結構化數據 1
1.1.2 結構化數據 2
1.1.3 半結構化數據 3
1.1.4 時間序列數據 4
1.2 數據來源 5
1.2.1 API 6
1.2.2 網頁 7
1.2.3 數據框 7
1.2.4 檔案 8
1.3 數據處理流程 8
1.3.1 數據獲取 9
1.3.2 數據清洗 9
1.3.3 數據變換 10
1.3.4 數據分析 10
1.3.5 數據存儲 11
1.4 Python特有的方式 11
1.5 總結 12
第 2章 Python數據結構 13
2.1 列表 13
2.1.1 創建列表 14
2.1.2 使用常見列表對象方法 14
2.1.3 使用切片符號 15
2.1.4 用列表實現佇列 16
2.1.5 用列表實現棧 18
2.1.6 用列表和棧進行自然語言處理 18
2.1.7 使用列表推導式改進算法 20
2.2 元組 24
2.2.1 元組列表 24
2.2.2 不變性 25
2.3 字典 26
2.3.1 字典列表 26
2.3.2 使用setdefault()在字典中添加元素 26
2.3.3 將JSON檔案載入到字典中 28
2.4 集合 29
2.4.1 從序列中刪除重複項 29
2.4.2 實現常見集合運算 30
2.5 總結 32
第3章 Python第三方庫 33
3.1 NumPy庫 33
3.1.1 安裝NumPy庫 34
3.1.2 創建NumPy數組 34
3.1.3 逐點運算 34
3.1.4 使用NumPy統計函式 35
3.2 pandas庫 36
3.2.1 安裝pandas庫 36
3.2.2 序列 36
3.2.3 數據框 39
3.3 scikit-learn庫 47
3.3.1 安裝scikit-learn庫 47
3.3.2 獲得樣本數據 48
3.3.3 把樣本數據載入數據框 48
3.3.4 把數據分成訓練數據集和測試數據集 48
3.3.5 把文本轉化為數值特徵向量 49
3.3.6 訓練和評估模型 50
3.3.7 在新數據中做預測 50
3.4 總結 51
第4章 從檔案和API訪問數據 52
4.1 使用Python函式open()導入數據 52
4.1.1 文本檔案 52
4.1.2 表格數據檔案 54
4.1.3 二進制檔案 56
4.2 將數據導出到檔案 57
4.3 訪問遠程檔案和API 58
4.3.1 HTTP請求的工作原理 58
4.3.2 urllib3庫 59
4.3.3 Requests庫 61
4.4 將數據移入或移出數據框 62
4.4.1 導入嵌套的JSON結構 62
4.4.2 將數據框轉換為JSON文檔 63
4.4.3 使用pandas-datareader庫將線上數據載入到數據框中 65
4.5 總結 66
第5章 使用資料庫 67
5.1 關係資料庫 67
5.1.1 了解SQL語句 68
5.1.2 MySQL入門 69
5.1.3 定義資料庫結構 69
5.1.4 將數據插入資料庫中 72
5.1.5 查詢資料庫數據 73
5.1.6 使用資料庫分析工具 75
5.2 NoSQL資料庫 81
5.2.1 Redis資料庫 81
5.2.2 MongoDB資料庫 83
5.3 總結 85
第6章 聚合數據 86
6.1 要聚合的數據 86
6.2 合併數據框 88
6.3 分組和聚合數據 90
6.3.1 按多索引查看特定值 91
6.3.2 通過切片獲得一系列值 93
6.3.3 多索引多層次切片 93
6.3.4 添加總計 94
6.3.5 添加小計 95
6.4 選擇組中的所有行 96
6.5 總結 97
第7章 合併數據 98
7.1 合併Python數據結構 98
7.1.1 使用“+”合併列表和元組 98
7.1.2 使用“**”合併字典 100
7.1.3 合併兩個結構的對應行 100
7.1.4 列表的多種合併方式 102
7.2 合併NumPy數組 104
7.3 合併pandas數據結構 106
7.3.1 連線數據框 106
7.3.2 合併兩個數據框 110
7.4 總結 114
第8章 數據可視化 115
8.1 常見可視化形式 115
8.1.1 折線圖 115
8.1.2 柱狀圖 116
8.1.3 餅狀圖 117
8.1.4 直方圖 118
8.2 使用Matplotlib庫繪製圖 118
8.2.1 安裝Matplotlib庫 118
8.2.2 使用matplotlib.pyplot 119
8.2.3 使用Figure和Axes對象 120
8.3 總結 124
第9章 分析空間數據 125
9.1 獲取空間數據 125
9.1.1 將人可讀的地址轉換為地理坐標 125
9.1.2 獲取移動對象的地理坐標 126
9.2 基於geopy庫和Shapely庫的空間數據分析 129
9.2.1 查找最近的對象 129
9.2.2 在特定區域中查找對象 131
9.2.3 結合兩種方法 133
9.3 結合空間數據和非空間數據 134
9.3.1 提取非空間屬性 134
9.3.2 合併空間數據集和非空間數據集 136
9.4 總結 137
第 10章 分析時間序列數據 139
10.1 規則時間序列與不規則時間序列 139
10.2 常見的時間序列分析技術 141
10.2.1 計算百分比變化 142
10.2.2 滾動視窗計算 143
10.2.3 計算滾動平均值的百分比變化 144
10.3 多元時間序列 144
10.3.1 處理多元時間序列 145
10.3.2 分析變數之間的依賴性 146
10.4 總結 150
第 11章 從數據中挖掘信息 151
11.1 關聯法則 151
11.1.1 支持度 152
11.1.2 置信度 152
11.1.3 提升度 153
11.2 Apriori算法 153
11.2.1 創建交易數據集 154
11.2.2 識別頻繁項集 155
11.2.3 生成關聯規則 156
11.3 可視化關聯規則 157
11.4 從關聯規則獲得可操作信息 160
11.4.1 生成推薦信息 160
11.4.2 基於關聯規則的折扣規劃 161
11.5 總結 163
第 12章 數據分析的機器學習 164
12.1 為什麼選擇機器學習 164
12.2 機器學習的類型 165
12.2.1 有監督學習 165
12.2.2 無監督學習 166
12.3 機器學習的工作原理 166
12.3.1 訓練數據 166
12.3.2 統計模型 167
12.3.3 預測數據 167
12.4 情感分析示例:產品評論分類 168
12.4.1 獲取產品評論 168
12.4.2 清理數據 169
12.4.3 拆分和轉換數據 171
12.4.4 訓練模型 173
12.4.5 評估模型 173
12.5 預測股票走勢 175
12.5.1 獲取數據 176
12.5.2 從連續數據中提取特徵 177
12.5.3 生成輸出變數 178
12.5.4 訓練和評估模型 179
12.6 總結 180