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