資料簡介:
本書由Python pandas項目創(chuàng)始人Wes McKinney親筆撰寫,詳細介紹利用Python進行操作、處理、清洗和規(guī)整數(shù)據(jù)等方面的具體細節(jié)和基本要點。第2版針對Python 3.6進行全面修訂和更新,涵蓋新版的pandas、NumPy、IPython和Jupyter,并增加大量實際案例,可以幫助你高效解決一系列數(shù)據(jù)分析問題。 第2版中的主要更新包括: ?所有的代碼,包括把Python的教程更新到了Python 3.6版本(*版中使用的是Python 2.7) ?更新了Python第三方發(fā)布版Anaconda和其他所需Python包的安裝指引 ?更新pandas庫到2017年的新版 ?新增一章,關于更多高級pandas工具和一些使用提示 ?新增statsmodels和scikit-learn的簡明使用介紹
資料目錄:
前言1
*章 準備工作7
1.1 本書內容7
1.1.1 什么類型的數(shù)據(jù)7
1.2 為何利用Python進行數(shù)據(jù)分析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.3 matplotlib11
1.3.4 IPython與Jupyter11
1.3.5 SciPy12
1.3.6 scikit-learn12
1.3.7 statsmodels13
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 集成開發(fā)環(huán)境和文本編輯器16
1.5 社區(qū)和會議17
1.6 快速瀏覽本書17
1.6.1 代碼示例18
1.6.2 示例數(shù)據(jù)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 執(zhí)行剪貼板中的程序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章 內建數(shù)據(jù)結構、函數(shù)及文件54
3.1 數(shù)據(jù)結構和序列54
3.1.1 元組54
3.1.2 列表57
3.1.3 內建序列函數(shù)61
3.1.4 字典64
3.1.5集合67
3.1.6 列表、集合和字典的推導式69
3.2 函數(shù)72
3.2.1 命名空間、作用域和本地函數(shù)72
3.2.2 返回多個值73
3.2.3 函數(shù)是對象74
3.2.4 匿名(Lambda)函數(shù)75
3.2.5 柯里化:部分參數(shù)應用76
3.2.6 生成器77
3.2.7 錯誤和異常處理79
3.3 文件與操作系統(tǒng)82
3.3.1 字節(jié)與Unicode文件85
3.4 本章小結86
第4章 NumPy基礎:數(shù)組與向量化計算87
4.1 NumPy ndarray:多維數(shù)組對象89
4.1.1 生成ndarray90
4.1.2 ndarray的數(shù)據(jù)類型92
4.1.3 NumPy數(shù)組算術94
4.1.4 基礎索引與切片95
4.1.5 布爾索引100
4.1.6 神奇索引103
4.1.7 數(shù)組轉置和換軸104
4.2 通用函數(shù):快速的逐元素數(shù)組函數(shù)106
4.3 使用數(shù)組進行面向數(shù)組編程109
4.3.1 將條件邏輯作為數(shù)組操作110
4.3.2 數(shù)學和統(tǒng)計方法111
4.3.3 布爾值數(shù)組的方法113
4.3.4 排序114
4.3.5 唯&一值與其他集合邏輯115
4.4 使用數(shù)組進行文件輸入和輸出115
4.5 線性代數(shù)116
4.6 偽隨機數(shù)生成118
4.7 示例:隨機漫步120
4.7.1 一次性模擬多次隨機漫步121
4.8 本章小結122
第5章 pandas入門123
5.1 pandas數(shù)據(jù)結構介紹123
5.1.1 Series123
5.1.2 DataFrame128
5.1.3 索引對象134
5.2 基本功能135
5.2.1 重建索引136
5.2.2 軸向上刪除條目138
5.2.3 索引、選擇與過濾140
5.2.4 整數(shù)索引144
5.2.5 算術和數(shù)據(jù)對齊145
5.2.6 函數(shù)應用和映射150
5.2.7 排序和排名152
5.2.8 含有重復標簽的軸索引155
5.3 描述性統(tǒng)計的概述與計算157
5.3.1 相關性和協(xié)方差159
5.3.2 唯&一值、計數(shù)和成員屬性161
5.4 本章小結164
第6章 數(shù)據(jù)載入、存儲及文件格式165
6.1 文本格式數(shù)據(jù)的讀寫165
6.1.1 分塊讀入文本文件171
6.1.2 將數(shù)據(jù)寫入文本格式172
6.1.3 使用分隔格式174
6.1.4 JSON數(shù)據(jù)176
6.1.5 XML和HTML:網(wǎng)絡抓取177
6.2 二進制格式180
6.2.1 使用HDF5格式181
6.2.2 讀取Microsoft Excel文件183
6.3 與Web API交互184
6.4 與數(shù)據(jù)庫交互186
6.5 本章小結187
第7章 數(shù)據(jù)清洗與準備188
7.1 處理缺失值188
7.1.1 過濾缺失值189
7.1.2 補全缺失值191
7.2 數(shù)據(jù)轉換194
7.2.1 刪除重復值194
7.2.2 使用函數(shù)或映射進行數(shù)據(jù)轉換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中的向量化字符串函數(shù)213
7.4 本章小結215
第8章 數(shù)據(jù)規(guī)整:連接、聯(lián)合與重塑216
8.1 分層索引216
8.1.1重排序和層級排序219
8.1.2 按層級進行匯總統(tǒng)計220
8.1.3 使用DataFrame的列進行索引220
8.2 聯(lián)合與合并數(shù)據(jù)集221
8.2.1 數(shù)據(jù)庫風格的DataFrame連接222
8.2.2 根據(jù)索引合并226
8.2.3 沿軸向連接230
8.2.4 聯(lián)合重疊數(shù)據(jù)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 分面網(wǎng)格和分類數(shù)據(jù)270
9.3 其他Python可視化工具271
9.4 本章小結272
*0章 數(shù)據(jù)聚合與分組操作274
10.1 GroupBy機制274
10.1.1 遍歷各分組278
10.1.2 選擇一列或所有列的子集279
10.1.3 使用字典和Series分組280
10.1.4 使用函數(shù)分組281
10.1.5 根據(jù)索引層級分組282
10.2 數(shù)據(jù)聚合282
10.2.1 逐列及多函數(shù)應用284
10.2.2 返回不含行索引的聚合數(shù)據(jù)287
10.3 應用:通用拆分-應用-聯(lián)合288
10.3.1 壓縮分組鍵290
10.3.2 分位數(shù)與桶分析291
10.3.3 示例:使用指定分組值填充缺失值292
10.3.4 示例:隨機采樣與排列294
10.3.5 示例:分組加權平均和相關性296
10.3.6 示例:逐組線性回歸298
10.4 數(shù)據(jù)透視表與交叉表298
10.4.1 交叉表:crosstab301
10.5 本章小結302
*1章 時間序列303
11.1 日期和時間數(shù)據(jù)的類型及工具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 時區(qū)處理320
11.4.1 時區(qū)的本地化和轉換320
11.4.2 時區(qū)感知時間戳對象的操作323
11.4.3 不同時區(qū)間的操作324
11.5 時間區(qū)間和區(qū)間算術324
11.5.1 區(qū)間頻率轉換326
11.5.2 季度區(qū)間頻率327
11.5.3 將時間戳轉換為區(qū)間(以及逆轉換)329
11.5.4 從數(shù)組生成PeriodIndex330
11.6 重新采樣與頻率轉換332
11.6.1 向下采樣334
11.6.2 向上采樣與插值336
11.6.3 使用區(qū)間進行重新采樣337
11.7 移動窗口函數(shù)339
11.7.1 指數(shù)加權函數(shù)342
11.7.2 二元移動窗口函數(shù)343
11.7.3 用戶自定義的移動窗口函數(shù)344
11.8 本章小結344
*2章 高階pandas346
12.1 分類數(shù)據(jù)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
*3章 Python建模庫介紹364
13.1 pandas與建模代碼的結合364
13.2 使用Patsy創(chuàng)建模型描述367
13.2.1 Patsy公式中的數(shù)據(jù)轉換369
13.2.2 分類數(shù)據(jù)與Patsy371
13.3 statsmodels介紹373
13.3.1 評估線性模型374
13.3.2 評估時間序列處理377
13.4 scikit-learn介紹377
13.5 繼續(xù)你的教育381
*4章 數(shù)據(jù)分析示例382
14.1 從Bitly獲取1.USA.gov數(shù)據(jù)382
14.1.1 純Python時區(qū)計數(shù)383
14.1.2 使用pandas進行時區(qū)計數(shù)385
14.2 MovieLens 1M數(shù)據(jù)集392
14.2.1 測量評價分歧396
14.3 美國1880~2010年的嬰兒名字397
14.3.1分析名字趨勢402
14.4 美國農業(yè)&部食品數(shù)據(jù)庫410
14.5 2012年聯(lián)邦選舉委員會數(shù)據(jù)庫416
14.5.1 按職業(yè)和雇主的捐獻統(tǒng)計419
14.5.2 捐贈金額分桶421
14.5.3 按州進行捐贈統(tǒng)計423
14.6 本章小結424
附錄A 高階NumPy425
附錄B 更多IPython系統(tǒng)相關內容457