前言1
第1章 準備工作7
1.1 本書內容7
1.1.1 什麼類型的數據7
1.2 為何利用Python進行數據分析8
1.2.1 Python作為膠水8
1.2.2 解決“雙語言”難題8
1.2.3 為何不使用Python9
1.3 重要的Python庫9
1.3.1 NumPy9
1.3.2 pandas10
1.3.3matplotlib11
1.3.4 IPython與Jupyter11
1.3.5 SciPy12
1.3.6scikit-learn12
1.3.7statsmodels13
1.4 安裝與設置13
1.4.1 Windows14
1.4.2 Apple(OS X和macOS)14
1.4.3 GNU/Linux14
1.4.4 安裝及更新Python包15
1.4.5 Python 2和Python 316
1.4.6 集成開發環境和文本編輯器16
1.5 社區和會議17
1.6 快速瀏覽本書17
1.6.1 代碼示例18
1.6.2 示例數據18
1.6.3導入約定18
1.6.4術語19
第2章 Python語言基礎、IPython及Jupyter notebook20
2.1 Python解釋器21
2.2 IPython基礎22
2.2.1 運行IPython命令行22
2.2.2 運行 Jupyter notebook23
2.2.3 Tab補全25
2.2.4 內省27
2.2.5 %run命令28
2.2.6 執行剪貼闆中的程序30
2.2.7 終端快捷鍵30
2.2.8 關於魔術命令31
2.2.9 matplotlib集成33
2.3 Python語言基礎34
2.3.1 語言語義34
2.3.2 標量類型42
2.3.3 控製流49
第3章 內建數據結構、函數及文件54
3.1 數據結構和序列54
3.1.1 元組54
3.1.2 列錶57
3.1.3 內建序列函數61
3.1.4 字典64
3.1.5集閤67
3.1.6 列錶、集閤和字典的推導式69
3.2 函數72
3.2.1 命名空間、作用域和本地函數72
3.2.2 返迴多個值73
3.2.3 函數是對象74
3.2.4 匿名(Lambda)函數75
3.2.5 柯裏化:部分參數應用76
3.2.6 生成器77
3.2.7 錯誤和異常處理79
3.3 文件與操作係統82
3.3.1 字節與Unicode文件85
3.4 本章小結86
第4章 NumPy基礎:數組與嚮量化計算87
4.1 NumPy ndarray:多維數組對象89
4.1.1 生成ndarray90
4.1.2 ndarray的數據類型92
4.1.3 NumPy數組算術94
4.1.4 基礎索引與切片95
4.1.5 布爾索引100
4.1.6 神奇索引103
4.1.7 數組轉置和換軸104
4.2 通用函數:快速的逐元素數組函數106
4.3 使用數組進行麵嚮數組編程109
4.3.1 將條件邏輯作為數組操作110
4.3.2 數學和統計方法111
4.3.3 布爾值數組的方法113
4.3.4 排序114
4.3.5 唯一值與其他集閤邏輯115
4.4 使用數組進行文件輸入和輸齣115
4.5 綫性代數116
4.6 僞隨機數生成118
4.7 示例:隨機漫步120
4.7.1 一次性模擬多次隨機漫步121
4.8 本章小結122
第5章 pandas入門123
5.1 pandas數據結構介紹123
5.1.1 Series123
5.1.2DataFrame128
5.1.3 索引對象134
5.2 基本功能135
5.2.1 重建索引136
5.2.2 軸嚮上刪除條目138
5.2.3 索引、選擇與過濾140
5.2.4 整數索引144
5.2.5 算術和數據對齊145
5.2.6 函數應用和映射150
5.2.7 排序和排名152
5.2.8 含有重復標簽的軸索引155
5.3 描述性統計的概述與計算157
5.3.1 相關性和協方差159
5.3.2 唯一值、計數和成員屬性161
5.4 本章小結164
第6章 數據載入、存儲及文件格式165
6.1 文本格式數據的讀寫165
6.1.1 分塊讀入文本文件171
6.1.2 將數據寫入文本格式172
6.1.3 使用分隔格式174
6.1.4 JSON數據176
6.1.5 XML和HTML:網絡抓取177
6.2 二進製格式180
6.2.1 使用HDF5格式181
6.2.2 讀取Microsoft Excel文件183
6.3 與Web API交互184
6.4 與數據庫交互186
6.5 本章小結187
第7章 數據清洗與準備188
7.1 處理缺失值188
7.1.1 過濾缺失值189
7.1.2 補全缺失值191
7.2 數據轉換194
7.2.1 刪除重復值194
7.2.2 使用函數或映射進行數據轉換195
7.2.3 替代值197
7.2.4 重命名軸索引198
7.2.5 離散化和分箱199
7.2.6 檢測和過濾異常值202
7.2.7 置換和隨機抽樣203
7.2.8 計算指標/虛擬變量204
7.3 字符串操作207
7.3.1 字符串對象方法208
7.3.2 正則錶達式210
7.3.3 pandas中的嚮量化字符串函數213
7.4 本章小結215
第8章 數據規整:連接、聯閤與重塑216
8.1 分層索引216
8.1.1重排序和層級排序219
8.1.2 按層級進行匯總統計220
8.1.3 使用DataFrame的列進行索引220
8.2 聯閤與閤並數據集221
8.2.1 數據庫風格的DataFrame連接222
8.2.2 根據索引閤並226
8.2.3 沿軸嚮連接230
8.2.4 聯閤重疊數據235
8.3 重塑和透視236
8.3.1 使用多層索引進行重塑236
8.3.2 將“長”透視為“寬”240
8.3.3 將“寬”透視為“長”242
8.4 本章小結244
第9章 繪圖與可視化245
9.1 簡明matplotlib API入門245
9.1.1 圖片與子圖246
9.1.2 顔色、標記和綫類型250
9.1.3 刻度、標簽和圖例252
9.1.4 注釋與子圖加工255
9.1.5 將圖片保存到文件258
9.1.6 matplotlib設置258
9.2 使用pandas和seaborn繪圖259
9.2.1 摺綫圖259
9.2.2 柱狀圖262
9.2.3 直方圖和密度圖266
9.2.4 散點圖或點圖269
9.2.5 分麵網格和分類數據270
9.3 其他Python可視化工具271
9.4 本章小結272
第10章 數據聚閤與分組操作274
10.1 GroupBy機製274
10.1.1 遍曆各分組278
10.1.2 選擇一列或所有列的子集279
10.1.3 使用字典和Series分組280
10.1.4 使用函數分組281
10.1.5 根據索引層級分組282
10.2 數據聚閤282
10.2.1 逐列及多函數應用284
10.2.2 返迴不含行索引的聚閤數據287
10.3 應用:通用拆分-應用-聯閤288
10.3.1 壓縮分組鍵290
10.3.2 分位數與桶分析291
10.3.3 示例:使用指定分組值填充缺失值292
10.3.4 示例:隨機采樣與排列294
10.3.5 示例:分組加權平均和相關性296
10.3.6 示例:逐組綫性迴歸298
10.4 數據透視錶與交叉錶298
10.4.1 交叉錶:crosstab301
10.5 本章小結302
第11章 時間序列303
11.1 日期和時間數據的類型及工具303
11.1.1 字符串與datetime互相轉換305
11.2 時間序列基礎307
11.2.1 索引、選擇、子集308
11.2.2 含有重復索引的時間序列311
11.3 日期範圍、頻率和移位312
11.3.1 生成日期範圍313
11.3.2 頻率和日期偏置316
11.3.3 移位(前嚮和後嚮)日期317
11.4 時區處理320
11.4.1 時區的本地化和轉換320
11.4.2 時區感知時間戳對象的操作323
11.4.3 不同時區間的操作324
11.5 時間區間和區間算術324
11.5.1 區間頻率轉換326
11.5.2 季度區間頻率327
11.5.3 將時間戳轉換為區間(以及逆轉換)329
11.5.4 從數組生成PeriodIndex330
11.6 重新采樣與頻率轉換332
11.6.1 嚮下采樣334
11.6.2 嚮上采樣與插值336
11.6.3 使用區間進行重新采樣337
11.7 移動窗口函數339
11.7.1 指數加權函數342
11.7.2 二元移動窗口函數343
11.7.3 用戶自定義的移動窗口函數344
11.8 本章小結344
第12章 高階pandas346
12.1 分類數據346
12.1.1 背景和目標346
12.1.2 pandas中的Categorical類型348
12.1.3 使用Categorical對象進行計算350
12.1.4 分類方法352
12.2 高階GroupBy應用355
12.2.1 分組轉換和“展開”GroupBy355
12.2.2 分組的時間重新采樣359
12.3 方法鏈技術361
12.3.1 pipe方法362
12.4 本章小結363
第13章 Python建模庫介紹364
13.1 pandas與建模代碼的結閤364
13.2 使用Patsy創建模型描述367
13.2.1 Patsy公式中的數據轉換369
13.2.2 分類數據與Patsy371
13.3 statsmodels介紹373
13.3.1 評估綫性模型374
13.3.2 評估時間序列處理377
13.4 scikit-learn介紹377
13.5 繼續你的教育381
第14章 數據分析示例382
14.1 從Bitly獲取1.USA.gov數據382
14.1.1 純Python時區計數383
14.1.2 使用pandas進行時區計數385
14.2 MovieLens 1M數據集392
14.2.1 測量評價分歧396
14.3 美國1880~2010年的嬰兒名字397
14.3.1分析名字趨勢402
14.4 美國農業部食品數據庫410
14.5 2012年聯邦選舉委員會數據庫416
14.5.1 按職業和雇主的捐獻統計419
14.5.2 捐贈金額分桶421
14.5.3 按州進行捐贈統計423
14.6 本章小結424
附錄A 高階NumPy425
附錄B 更多IPython係統相關內容457
· · · · · · (
收起)