本書是Python數(shù)據(jù)分析經(jīng)典暢銷書的升級版,由Python pandas項目的創(chuàng)始人Wes McKinney撰寫。本書自2012年第1版出版以來,迅速成為該領域的權威指南,并且為了保持與時俱進,作者對本書內(nèi)容進行持續(xù)更新,以摒棄一些過時、不兼容的工具,添加新的內(nèi)容來介紹新特性、新工具及方法。第3版針對Python3.10和pandas1.4進行了更新,并通過實操講解和實際案例向讀者展示了如何高效地解決一系列數(shù)據(jù)分析問題。讀者將在閱讀過程中學習新版本的pandas、NumPy、IPython和Jupyte??
*本書講解利用 Python 進行數(shù)據(jù)操作、處理、清洗、規(guī)整等的基本要點和具體細節(jié),目標 是介紹 Python 編程語言及其用于數(shù)據(jù)的庫生態(tài)和工具,掌握這些知識可以讓你成為一名稱職的數(shù)據(jù)分析師。
本書第1版出版于2012年,彼時基于Python的開源數(shù)據(jù)分析庫(例如pandas)仍然是一個發(fā)展迅速的新事物,本書也成為該領域排名No1的經(jīng)典暢銷書,前兩版中文版累計銷售近30萬冊。
閱讀本書可以學習使用Python對數(shù)據(jù)集進行操作、處理、清洗和規(guī)整。第3版針對Python 3.10和pandas 1.4進行了更新,并通過實操講解和實際案例向讀者展示了如何高效地解決一系列數(shù)據(jù)分析問題。讀者將在閱讀過程中學習新版本的pandas、NumPy、IPython和Jupyter。
本書作者Wes McKinney是Python pandas項目的創(chuàng)始人。本書對Python數(shù)據(jù)科學工具的介紹既貼近實戰(zhàn)又內(nèi)容新穎,非常適合剛開始學習Python的數(shù)據(jù)分析師或剛開始學習數(shù)據(jù)科學和科學計算的Python程序員閱讀。讀者可以從GitHub獲取數(shù)據(jù)文件和相關資料。
學完本書,你將能夠:
• 使用Jupyter notebook和IPython shell進行探索性計算。
• 掌握NumPy的基礎功能和高級功能。
• 掌握pandas庫中的數(shù)據(jù)分析工具。
• 使用靈活的工具對數(shù)據(jù)進行加載、清洗、轉(zhuǎn)換、合并和重塑。
• 使用matplotlib進行信息可視化。
• 使用pandas的groupBy功能對數(shù)據(jù)集進行切片、切塊和匯總。
• 分析并處理規(guī)則的時間序列數(shù)據(jù)和不規(guī)則的時間序列數(shù)據(jù)。
• 利用完整、詳細的示例學習如何解決現(xiàn)實中的數(shù)據(jù)分析問題。
目錄
前言1
第1章 準備工作7
1.1 本書內(nèi)容7
1.2 為什么使用Python進行數(shù)據(jù)分析8
1.3 重要的Python庫9
1.4 安裝和設置14
1.5 社區(qū)和會議18
1.6 本書導航18
第2章 Python語法基礎、IPython和Jupyter notebook21
2.1 Python解釋器22
2.2 IPython基礎23
2.3 Python語法基礎29
2.4總結(jié)47
第3章 Python的數(shù)據(jù)結(jié)構、函數(shù)和文件48
3.1 數(shù)據(jù)結(jié)構和序列48
3.2 函數(shù)65
3.3 文件和操作系統(tǒng)76
3.4 總結(jié)81
第4章 NumPy基礎:數(shù)組和向量化計算82
4.1 NumPy的ndarray:多維數(shù)組對象84
4.2 生成偽隨機數(shù)101
4.3 通用函數(shù):快速的元素級數(shù)組函數(shù)103
4.4 利用數(shù)組進行面向數(shù)組編程105
4.5 使用數(shù)組進行文件輸入和輸出113
4.6 線性代數(shù)114
4.7 示例:隨機漫步115
4.8 總結(jié)118
第5章 pandas入門119
5.1 pandas的數(shù)據(jù)結(jié)構介紹120
5.2 基本功能133
5.3 描述性統(tǒng)計的匯總和計算159
5.4 總結(jié)167
第6章 數(shù)據(jù)加載、存儲與文件格式168
6.1 讀寫文本格式的數(shù)據(jù)168
6.2 二進制數(shù)據(jù)格式185
6.3 與Web API交互190
6.4 與數(shù)據(jù)庫交互191
6.5 總結(jié)193
第7章 數(shù)據(jù)清洗和準備194
7.1 處理缺失數(shù)據(jù)194
7.2 數(shù)據(jù)轉(zhuǎn)換200
7.3 擴展數(shù)據(jù)類型214
7.4 字符串操作216
7.5 分類數(shù)據(jù)224
7.6 總結(jié)233
第8章 數(shù)據(jù)規(guī)整:連接、聯(lián)合和重塑234
8.1 層次化索引234
8.2 聯(lián)合與合并數(shù)據(jù)集240
8.3 重塑和透視256
8.4 總結(jié)264
第9章 繪圖和可視化265
9.1 matplotlib API入門266
9.2 使用pandas和seaborn繪圖279
9.3 其他Python可視化工具293
9.4 總結(jié)294
第10章 數(shù)據(jù)聚合與分組操作295
10.1 GroupBy機制296
10.2 數(shù)據(jù)聚合304
10.3 Apply:通用的“拆分-應用-聯(lián)合”范式310
10.4 分組轉(zhuǎn)換和“展開式”GroupBy運算322
10.5 透視表和交叉表326
10.6 總結(jié)330
第11章 時間序列331
11.1 日期和時間數(shù)據(jù)的類型及工具332
11.2 時間序列基礎知識336
11.3 日期的范圍、頻率以及移位341
11.4 時區(qū)處理348
11.5 周期及其算術運算353
11.6 重采樣及頻率轉(zhuǎn)換360
11.7 移動窗口函數(shù)369
11.8 總結(jié)375
第12章 Python建模庫介紹376
12.1 pandas與模型代碼的接口376
12.2 用Patsy創(chuàng)建模型描述379
12.3 statsmodels介紹385
12.4 scikit-learn介紹390
12.5 總結(jié)393
第13章 數(shù)據(jù)分析案例395
13.1 來自1.USA.gov的Bitly數(shù)據(jù)395
13.2 MovieLens 1M數(shù)據(jù)集404
13.3 1880—2010年間全美嬰兒姓名411
13.4 USDA食品數(shù)據(jù)庫425
13.5 2012年聯(lián)邦選舉委員會數(shù)據(jù)庫431
13.6 總結(jié)440
附錄A 高階NumPy441
附錄B 更多關于IPython的內(nèi)容475