互聯(lián)網(wǎng)的飛速發(fā)展伴隨著海量信息的產(chǎn)生,而海量信息的背后對應(yīng)的則是海量數(shù)據(jù)。如何從這些海量數(shù)據(jù)中獲取有價值的信息來供人們學(xué)習(xí)和工作使用,這就不得不用到大數(shù)據(jù)挖掘和分析技術(shù)。數(shù)據(jù)分析作為大數(shù)據(jù)技術(shù)的核心一環(huán),其重要性不言而喻。
在數(shù)據(jù)分析領(lǐng)域,Python語言以其簡單易用,并提供了優(yōu)秀、好用的第三方庫和數(shù)據(jù)分析的完整框架而深受數(shù)據(jù)分析人員的青睞?梢哉f,Python已經(jīng)當(dāng)仁不讓地成為了數(shù)據(jù)分析人員的一把利器。程序員想要進(jìn)入數(shù)據(jù)分析行業(yè),首先要掌握Python數(shù)據(jù)分析技術(shù),只有這樣才能在嚴(yán)峻的就業(yè)市場中具有較強(qiáng)的競爭力。
目前圖書市場上關(guān)于Python數(shù)據(jù)分析的圖書主要是幾本翻譯圖書,其定位相對高端,而且翻譯質(zhì)量參差不齊,案例數(shù)據(jù)不方便下載,閱讀難度系數(shù)較大,初學(xué)者不容易上手,故不適合初學(xué)者學(xué)習(xí);而國內(nèi)的幾本原創(chuàng)Python數(shù)據(jù)分析圖書質(zhì)量也良莠不齊,不成系統(tǒng),也不適合初學(xué)者閱讀。可以說,圖書市場上還鮮見一本通俗易懂且適合小白閱讀的Python數(shù)據(jù)分析入門圖書,基于此,筆者編寫了本書。本書從Python數(shù)據(jù)分析的基礎(chǔ)知識入手講解,然后結(jié)合大量的數(shù)據(jù)分析案例,系統(tǒng)地介紹了Python數(shù)據(jù)分析的方法和流程,手把手帶領(lǐng)讀者掌握Python數(shù)據(jù)分析的相關(guān)知識,并提高讀者的項目實踐能力。
本書特色
1.視頻教學(xué),高效、直觀
為了便于讀者高效、直觀地學(xué)習(xí),筆者專門為本書的重點(diǎn)內(nèi)容錄制了配套教學(xué)視頻,讀者可以一邊看書,一邊結(jié)合教學(xué)視頻進(jìn)行學(xué)習(xí),以取得更好的學(xué)習(xí)效果。
2.內(nèi)容全面,講解系統(tǒng)
本書不但全面介紹了從Numpy到pandas,從matplotlib到pyecharts的數(shù)據(jù)分析必學(xué)技術(shù),而且還系統(tǒng)地講解了從數(shù)據(jù)讀取到數(shù)據(jù)清洗,從數(shù)據(jù)處理到數(shù)據(jù)可視化的詳細(xì)步驟。
3.給出了數(shù)據(jù)分析環(huán)境的安裝和配置步驟
本書詳細(xì)介紹了Python數(shù)據(jù)分析集成環(huán)境Anaconda的安裝步驟和使用方法,可以大大降低初學(xué)者學(xué)習(xí)Python數(shù)據(jù)分析的門檻,從而讓讀者快速跨進(jìn)Python數(shù)據(jù)分析的大門。
4.詳細(xì)介紹了數(shù)據(jù)分析的流程
本書從一開始便對數(shù)據(jù)分析的流程進(jìn)行了詳細(xì)介紹,而且在講解中結(jié)合了多個實用性很強(qiáng)的數(shù)據(jù)分析項目案例,帶領(lǐng)讀者掌握Python數(shù)據(jù)分析的相關(guān)知識,以解決實際工作中的數(shù)據(jù)分析問題。
5.提供了9個有較高應(yīng)用價值的項目案例,有很強(qiáng)的實用性
本書提供了9個實用性很強(qiáng)的數(shù)據(jù)分析項目案例,這些案例從不同的分析角度切入進(jìn)行講解,具有較高的應(yīng)用價值。讀者通過實際操練,可以更加透徹地理解數(shù)據(jù)分析的相關(guān)知識。
6.提供教學(xué)PPT,方便教學(xué)和學(xué)習(xí)
筆者專門為本書制作了專業(yè)的教學(xué)PPT,以方便相關(guān)院校的教學(xué)人員授課時使用;讀者也可以通過教學(xué)PPT,提綱挈領(lǐng)地掌握書中的內(nèi)容脈絡(luò)。
本書內(nèi)容
第1章 Python環(huán)境搭建與使用
本章介紹了如何搭建和使用Python數(shù)據(jù)分析環(huán)境,并介紹了如何使用Jupyter Notebook進(jìn)行數(shù)據(jù)分析編程。
第2章 NumPy入門和實戰(zhàn)
本章首先介紹了Numpy的基本數(shù)據(jù)結(jié)構(gòu)多維數(shù)組;然后介紹了多維數(shù)組的創(chuàng)建和基本屬性、數(shù)組的切片和索引方法,以及數(shù)組的運(yùn)算與存取;最后通過綜合案例,演示了如何實現(xiàn)圖像的變換功能。
第3章 pandas入門和實戰(zhàn)
本章首先介紹了pandas中兩種基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)的創(chuàng)建和使用方法;然后詳細(xì)講解了DataFrame的選取和操作,同時介紹了其算術(shù)運(yùn)算、函數(shù)的使用和pandas的可視化方法;最后結(jié)合案例,介紹了數(shù)據(jù)分析流程。
第4章 外部數(shù)據(jù)的讀取與存儲
本章主要介紹了如何利用pandas庫讀取外部數(shù)據(jù)為DataFrame數(shù)據(jù)格式,并介紹了通過Python進(jìn)行數(shù)據(jù)處理后如何將DataFrame類數(shù)據(jù)存儲到相應(yīng)的外部數(shù)據(jù)文件中。
第5章 數(shù)據(jù)清洗與整理
本章主要介紹了如何使用pandas進(jìn)行多源數(shù)據(jù)的清洗和整理,并給出了針對多源數(shù)據(jù)的合并和連接方法,以及數(shù)據(jù)的重塑方法,最后通過一個綜合案例演示了數(shù)據(jù)分析中的數(shù)據(jù)清洗過程。
第6章 數(shù)據(jù)分組與聚合
本章涵蓋的主要內(nèi)容有:GroupBy的原理和使用方法;聚合函數(shù)的使用;分組運(yùn)算中transform和apply方法的使用;通過pandas創(chuàng)建數(shù)據(jù)透視表;通過綜合案例,鞏固數(shù)據(jù)分組統(tǒng)計的使用。
第7章 matplotlib可視化
本章涵蓋的主要內(nèi)容有:利用matplotlib進(jìn)行圖表繪制;學(xué)會使用自定義設(shè)置,個性化繪制圖表;通過綜合案例,鞏固matplotlib可視化的方法和技巧。
第8章 seaborn可視化
本章涵蓋的主要內(nèi)容有:使用seaborn繪圖;學(xué)會seaborn樣式和分布圖繪制;通過綜合案例泰坦尼克號的生還者數(shù)據(jù),鞏固seaborn的可視化方法和技巧。
第9章 pyecharts可視化
本章涵蓋的主要內(nèi)容有:安裝pyecharts庫;學(xué)會使用pyecharts庫繪制基本圖表;學(xué)會繪制其他圖表;通過綜合案例,鞏固pyecharts的繪制方法和技巧。
第10章 時間序列
本章涵蓋的主要內(nèi)容有:時間序列的構(gòu)造和使用方法;時間序列的頻率轉(zhuǎn)換與重采樣;通過綜合案例,鞏固時間序列數(shù)據(jù)的處理與分析方法。
第11章 綜合案例網(wǎng)站日志分析
本章通過一個綜合案例,介紹了如何通過Python的第三方庫解析網(wǎng)站日志;如何利用pandas對網(wǎng)站日志數(shù)據(jù)進(jìn)行預(yù)處理;結(jié)合前面介紹的數(shù)據(jù)分析和數(shù)據(jù)可視化技術(shù)對網(wǎng)站日志數(shù)據(jù)進(jìn)行分析。
本書配套資源獲取方式
本書提供以下配套資源:
? 本書配套教學(xué)視頻;
? 超值電子書(地圖繪制技術(shù));
? 本書相關(guān)素材文件;
? 本書源代碼文件;
? 本書教學(xué)PPT。
這些配套資源需要讀者自行下載。請登錄機(jī)械工業(yè)出版社華章公司網(wǎng)站,在該網(wǎng)站上搜索到本書,然后單擊資料下載按鈕即可找到配書資源下載鏈接。
適合閱讀本書的讀者
? 數(shù)據(jù)分析初學(xué)者;
? 數(shù)據(jù)分析愛好者;
? 數(shù)據(jù)分析從業(yè)人員;
? 數(shù)據(jù)分析培訓(xùn)學(xué)員;
? 高校相關(guān)專業(yè)的學(xué)生。
本書由羅攀主筆編寫,蔣仟、陳瑞滕和潘丹三位小伙伴也參與了部分章節(jié)的編寫工作,在此對他們表示特別的感謝!
第1章 Python環(huán)境搭建與使用 1
1.1 Anaconda的安裝和使用 1
1.1.1 Anaconda的安裝 1
1.1.2 Anaconda的使用 3
1.2 Jupyter Notebook的使用 5
1.2.1 更改工作空間 5
1.2.2 界面介紹與使用 7
第2章 NumPy入門和實戰(zhàn) 9
2.1 ndarray多維數(shù)組 9
2.1.1 創(chuàng)建ndarray數(shù)組 9
2.1.2 ndarray對象屬性 12
2.1.3 ndarray數(shù)據(jù)類型 13
2.1.4 數(shù)組變換 15
2.1.5 NumPy的隨機(jī)數(shù)函數(shù) 18
2.2 數(shù)組的索引和切片 20
2.2.1 數(shù)組的索引 21
2.2.2 數(shù)組的切片 23
2.2.3 布爾型索引 24
2.2.4 花式索引 26
2.3 數(shù)組的運(yùn)算 26
2.3.1 數(shù)組和標(biāo)量間的運(yùn)算 26
2.3.2 通用函數(shù) 27
2.3.3 條件邏輯運(yùn)算 28
2.3.4 統(tǒng)計運(yùn)算 30
2.3.5 布爾型數(shù)組運(yùn)算 31
2.3.6 排序 32
2.3.7 集合運(yùn)算 33
2.3.8 線性代數(shù) 34
2.4 數(shù)組的存取 34
2.4.1 數(shù)組的存儲 35
2.4.2 數(shù)組的讀取 35
2.5 綜合示例圖像變換 35
第3章 pandas入門和實戰(zhàn) 38
3.1 pandas數(shù)據(jù)結(jié)構(gòu) 38
3.1.1 創(chuàng)建Series數(shù)據(jù) 38
3.1.2 創(chuàng)建DataFrame數(shù)據(jù) 40
3.1.3 索引對象 43
3.2 pandas索引操作 44
3.2.1 重新索引 45
3.2.2 更換索引 46
3.2.3 索引和選取 48
3.2.4 操作行和列 52
3.3 pandas數(shù)據(jù)運(yùn)算 53
3.3.1 算術(shù)運(yùn)算 54
3.3.2 函數(shù)應(yīng)用和映射 55
3.3.3 排序 56
3.3.4 匯總與統(tǒng)計 57
3.3.5 唯一值和值計數(shù) 58
3.4 層次化索引 59
3.4.1 層次化索引簡介 59
3.4.2 重排分級順序 60
3.4.3 匯總統(tǒng)計 61
3.5 pandas可視化 61
3.5.1 線形圖 61
3.5.2 柱狀圖 63
3.5.3 直方圖和密度圖 66
3.5.4 散點(diǎn)圖 67
3.6 綜合示例小費(fèi)數(shù)據(jù)集 68
第4章 外部數(shù)據(jù)的讀取與存儲 73
4.1 文本數(shù)據(jù)的讀取與存儲 73
4.2 JSON和Excel數(shù)據(jù)的讀取與存儲 82
4.3 數(shù)據(jù)庫的讀取與存儲 87
4.4 Web數(shù)據(jù)的讀取 90
第5章 數(shù)據(jù)清洗與整理 95
5.1 數(shù)據(jù)清洗 95
5.2 數(shù)據(jù)合并和重塑 104
5.3 字符串處理 116
5.4 綜合示例Iris數(shù)據(jù)集 118
第6章 數(shù)據(jù)分組與聚合 125
6.1 數(shù)據(jù)分組 125
6.2 聚合運(yùn)算 132
6.3 分組運(yùn)算 136
6.4 數(shù)據(jù)透視表 139
6.5 綜合實例巴爾的摩公務(wù)員工資數(shù)據(jù)集 142
第7章 matplotlib可視化 148
7.1 線形圖 148
7.2 柱狀圖 152
7.3 其他基本圖表 158
7.4 自定義設(shè)置 159
7.5 綜合示例星巴克店鋪數(shù)據(jù)集 164
第8章 seaborn可視化 172
8.1 樣式與分布圖 172
8.2 分類圖 181
8.3 回歸圖與網(wǎng)格 187
8.4 綜合示例泰坦尼克號生還者數(shù)據(jù) 191
第9章 pyecharts可視化 202
9.1 基礎(chǔ)圖表 202
9.2 其他圖表 209
9.3 綜合示例糗事百科用戶數(shù)據(jù) 213
第10章 時間序列 224
10.1 datetime模塊 224
10.2 時間序列基礎(chǔ) 228
10.3 日期 231
10.4 時期 235
10.5 頻率轉(zhuǎn)換與重采樣 238
10.6 綜合示例自行車租賃數(shù)據(jù) 241
第11章 綜合案例網(wǎng)站日志分析 248
11.1 數(shù)據(jù)來源 248
11.2 日志數(shù)據(jù)分析 252
11.2.3 IP地址分析 258