Python數(shù)據分析從入門到精通循序漸進地講解了使用Python語言實現(xiàn)數(shù)據分析的核心知識,并通過具體實例的實現(xiàn)過程演示了數(shù)據分析的方法和流程。Python數(shù)據分析從入門到精通共12章,內容包括Python語言基礎、處理網絡數(shù)據、網絡爬蟲實戰(zhàn)、處理特殊文本格式、使用數(shù)據庫保存數(shù)據、操作處理CSV文件、操作處理JSON數(shù)據、使用庫matplotlib實現(xiàn)數(shù)據可視化處理、使用庫pygal實現(xiàn)數(shù)據可視化處理、使用庫numPy實現(xiàn)數(shù)據可視化處理、使用庫pandas實現(xiàn)數(shù)據可視化處理和大數(shù)據實戰(zhàn)案例。Python數(shù)據分析從入門到精通簡潔而不失技術深度,內容豐富全面。不僅易于閱讀,同時涵蓋了其他同類圖書中很少涉及的參考資料,是學習Python數(shù)據分析的實用教程。
Python數(shù)據分析從入門到精通適用于已了解Python語言基礎語法、希望進一步提高自己Python開發(fā)水平的讀者,還可作為大中專院校和培訓學校相關專業(yè)師生的學習參考用書。
前言
從你開始學習編程的那一刻起,就注定了以后要走的路:從編程學習者開始,依次經歷實習生、程序員、軟件工程師、架構師、CTO等職位。當你驀然回首,會發(fā)現(xiàn)自己的成功并非偶然,而是在程序員的成長之路上不斷修改代碼、尋找并解決Bug、不停測試程序和修改項目的磨煉的必然結果。換言之,只要你在自己的編程生涯中穩(wěn)扎穩(wěn)打,并且善于總結和學習,最終將會得到可喜的收獲。
選擇一本合適的書
一名程序開發(fā)初學者究竟應該如何學習和提高自己的編程技術呢?答案之一是買一本合適的程序開發(fā)書籍進行學習。但市面上許多面向初學者的編程書籍大多都是基礎知識講解,且多偏向于理論,讀者讀了以后面對實戰(zhàn)項目時還是無從下手。如何從理論平滑過渡到項目實戰(zhàn),是初學者迫切需要解決的問題,為此,我們特意策劃了本書。
本書面向有一定Python基礎的讀者分享使用Python語言開發(fā)數(shù)據分析程序的知識,以提高初學者的編程水平。本書主要講解實現(xiàn)Python數(shù)據分析所必須具備的知識和技巧,幫助編程人員迅速掌握數(shù)據分析的各項技能,并且提高編程效率。
本書的特色
1.內容全面
本書詳細講解了Python數(shù)據分析所需要的編程技術,循序漸進地講解了這些技術的使用方法和技巧,幫助讀者快速步入Python 數(shù)據分析的高手之列。
2.實例驅動教學
本書采用理論加實例的編寫方式,通過實例對知識點進行橫向切入和縱向比較,讓讀者有更多的實踐演練機會,并且可以從不同的方位展現(xiàn)一個知識點的用法,真正實現(xiàn)提高學習者技能的效果。
3.二維碼視頻講解
書中的每一個二級目錄下都有一個二維碼,通過掃描二維碼可以觀看講解視頻,既包括實例講解,也包括教程講解。
4.售后幫助讀者快速解決學習問題
無論是書中的疑惑,還是在學習中的問題,群主和管理員都將在第一時間為讀者解答問題,這是我們對讀者的承諾。
5.貼心提示和注意事項提醒
本書根據需要在各章安排了很多“注意”小板塊,讀者可以在學習過程中更輕松地理解相關知識點及概念,更快地掌握有關技術的應用技巧。
6.QQ群實現(xiàn)教學互動
編者為了方便給讀者答疑,特提供了QQ群為讀者進行技術服務,可以隨時在線與讀者互動。讓大家在互學互助中形成一個良好的學習編程的氛圍。
Python數(shù)據分析從入門到精通的QQ群號是:683761238。
Python數(shù)據分析從入門到精通的主要內容
Python數(shù)據分析從入門到精通循序漸進、深入淺出地講解了使用Python語言實現(xiàn)數(shù)據分析的核心知識,并通過具體實例的實現(xiàn)過程演示了數(shù)據分析的方法和流程。Python數(shù)據分析從入門到精通共12章,分別講解了Python語言基礎、處理網絡數(shù)據、網絡爬蟲實戰(zhàn)、處理特殊文本格式、使用數(shù)據庫保存數(shù)據、操作處理CSV文件、操作處理JSON數(shù)據、使用庫matplotlib實現(xiàn)數(shù)據可視化處理、使用庫pygal實現(xiàn)數(shù)據可視化處理、使用庫numPy實現(xiàn)數(shù)據可視化處理、使用庫pandas實現(xiàn)數(shù)據可視化處理及大數(shù)據實戰(zhàn)案例。Python數(shù)據分析從入門到精通簡潔而不失技術深度,內容全面豐富,不僅易于閱讀,同時涵蓋了其他同類圖書中較少涉及的參考資料,是學習Python數(shù)據分析的必備參考用書。
Python數(shù)據分析從入門到精通適用于已了解Python語言基礎語法希望進一步提高自己Python開發(fā)水平的讀者,同時還可以作為大中專院校相關專業(yè)的和培訓學校師生的專業(yè)教材。
Python數(shù)據分析從入門到精通的讀者對象
Python數(shù)據分析從入門到精通適用于以下讀者學習參考。
軟件工程師。
Python初學者和自學者。
專業(yè)數(shù)據分析人員。
數(shù)據庫工程師和管理員。
研發(fā)工程師。
教育工作者。
致謝
Python數(shù)據分析從入門到精通在編寫過程中得到了機械工業(yè)出版社編輯的大力支持,正是各位編輯求真務實的作風,才使得本書能夠順利出版。另外,也十分感謝我的家人給予的巨大支持。由于水平有限,書中存在紕漏之處在所難免,誠請讀者提出寶貴的意見或建議,以便修訂并使之更臻完善。編者QQ:150649826。
最后感謝您購買本書,希望Python數(shù)據分析從入門到精通能成為您編程路上的領航者,祝您閱讀快樂
編者
李梓萌,女,高級工程師,畢業(yè)于清華大學,,供職于阿里巴巴淘寶事業(yè)部。工作項目涉及金融科技、證券交易所、銀行、生物信息學、基因組學、廣告技術、基礎設施、交通運輸、能源、人力資源和娛樂等多個領域的數(shù)據分析工作。在預測分析、數(shù)據科學、機器學習、大數(shù)據、產品工程、高性能計算和云基礎設施等項目中工作了8年。
目錄
前言
第1章 Python語言基礎1
1.1 Python語言介紹1
1.1.1 Python語言的地位1
1.1.2 Python語言的優(yōu)點2
1.2 安裝Python3
1.2.1 在Windows系統(tǒng)中下載并安裝
Python3
1.2.2 在MacOS系統(tǒng)中下載并安裝
Python6
1.2.3 在Linux系統(tǒng)中下載并安裝
Python6
1.3 Python開發(fā)工具介紹7
1.3.1 使用Python自帶的開發(fā)工具
IDLE7
1.3.2 使用流行工具PyCharm7
1.4 認識第一段Python程序11
1.4.1 使用IDLE編碼并運行11
1.4.2 使用命令行方式運行Python
程序12
1.4.3 使用交互式方式運行Python
程序12
1.4.4 使用PyCharm實現(xiàn)第一個Python
程序13
第2章 處理網絡數(shù)據17
2.1 處理HTML和XML數(shù)據17
2.1.1 解析XML數(shù)據17
2.1.2 使用庫beautiful soup解析數(shù)據25
2.1.3 使用庫bleach解析數(shù)據27
2.1.4 使用庫cssutils解析數(shù)據29
2.1.5 使用庫html5lib解析數(shù)據31
2.1.6 使用庫markupsafe解析數(shù)據31
2.1.7 使用庫pyquery解析數(shù)據32
2.2 處理HTTP 數(shù)據34
2.2.1 使用內置的http包處理數(shù)據34
2.2.2 使用庫requests處理數(shù)據36
2.2.3 使用庫httplib2處理數(shù)據37
2.2.4 使用庫urllib3處理數(shù)據41
2.3 處理URL 數(shù)據44
2.3.1 使用urllib包44
2.3.2 使用庫furl處理數(shù)據47
2.3.3 使用庫purl處理數(shù)據48
2.3.4 使用庫webargs處理數(shù)據50
2.4 爬取新聞保存到XML文件并分析
特征關系50
2.4.1 爬蟲抓取數(shù)據51
2.4.2 使用Stanford CoreNLP提取XML
數(shù)據的特征關系52
第3章 網絡爬蟲實戰(zhàn)54
3.1 網絡爬蟲基礎54
3.2 開發(fā)簡單的網絡爬蟲應用程序55
3.2.1 爬蟲抓取某高校教師信息55
3.2.2 抓取某吧的信息59
3.2.3 抓取XX百科64
3.2.4 爬蟲抓取某網站的信息并保存到
本地68
3.3 使用爬蟲框架Scrapy70
3.3.1 Scrapy框架基礎71
3.3.2 搭建Scrapy環(huán)境72
3.3.3 創(chuàng)建第一個Scrapy項目72
3.3.4 抓取某電影網的熱門電影信息76
3.3.5 抓取某網站中的照片并保存到
本地81
3.3.6 抓取某網站中的主播照片并保存到
本地82
第4章 處理特殊文本格式84
4.1 使用tablib模塊84
4.1.1 基本用法84
4.1.2 操作數(shù)據集中的指定行和列86
4.1.3 刪除并導出不同格式的數(shù)據87
4.1.4 生成一個Excel文件88
4.1.5 處理多個數(shù)據集89
4.1.6 使用標簽過濾數(shù)據92
4.1.7 分離表格中的數(shù)據92
4.2 使用openpyxl處理Office
文件93
4.2.1 openpyxl基礎93
4.2.2 使用openpyxl讀取Excel文件的
數(shù)據96
4.2.3 將4組數(shù)據導入Excel文件96
4.2.4 在Excel文件中檢索某關鍵字
數(shù)據98
4.2.5 將數(shù)據導入Excel文件并生成一個
圖表99
4.3 使用pyexcel處理Office
文件100
4.3.1 使用pyexcel讀取并寫入CSV
文件100
4.3.2 使用pyexcel讀取指定Excel文件中
每個單元格數(shù)據101
4.3.3 按列讀取并顯示指定Excel文件中
每個單元格數(shù)據102
4.3.4 讀取顯示Excel文件中的所有
數(shù)據102
4.3.5 將3組數(shù)據導入新建的Excel
文件103
4.3.6 以多種方式獲取Excel數(shù)據104
4.3.7 將數(shù)據分別導入Excel文件和SQLite
數(shù)據庫105
4.3.8 在Flask Web項目中使用pyexcel處理
數(shù)據106
4.4 使用python-docx處理Office
文件109
4.4.1 使用python-docx處理Office文件的
流程109
4.4.2 創(chuàng)建Word文檔110
4.4.3 在Word中插入圖片110
4.4.4 創(chuàng)建結構文檔112
4.4.5 讀取Word文檔114
4.5 使用xlrd和xlwt讀寫Excel115
4.5.1 使用庫xlrd115
4.5.2 使用庫xlwt117
4.6 使用xlsxwriter操作Excel
文件118
4.6.1 使用庫xlsxwriter的基本流程118
4.6.2 創(chuàng)建一個表格118
4.6.3 設置表格樣式120
4.6.4 向Excel文件中插入圖像122
4.6.5 向Excel文件中插入數(shù)據并繪制
柱狀圖123
4.6.6 向Excel文件中插入數(shù)據并繪制
散點圖125
4.6.7 向Excel文件中插入數(shù)據并繪制
柱狀圖和餅狀圖126
第5章 使用數(shù)據庫保存數(shù)據129
5.1 操作SQLite3數(shù)據庫129
5.1.1 sqlite3模塊介紹129
5.1.2 使用sqlite3模塊操作SQLite3
數(shù)據庫130
5.1.3 使用Flask+ SQLite3+ ECharts2實現(xiàn)
降水數(shù)據可視化系統(tǒng)132
5.2 操作MySQL數(shù)據庫138
5.2.1 搭建PyMySQL環(huán)境138
5.2.2 實現(xiàn)數(shù)據庫連接139
5.2.3 創(chuàng)建數(shù)據庫表140
5.2.4 爬取XX站用戶信息并保存到
MySQL數(shù)據庫141
5.3 使用MariaDB數(shù)據庫145
5.3.1 搭建MariaDB數(shù)據庫環(huán)境145
5.3.2 在Python程序中使用MariaDB
數(shù)據庫148
5.4 使用MongoDB數(shù)據庫150
5.4.1 搭建MongoDB環(huán)境150
5.4.2 在Python程序中使用MongoDB
數(shù)據庫151
5.5 使用ORM操作數(shù)據庫154
5.5.1 Python和ORM154
5.5.2 使用SQLAlchemy155
5.5.3 使用mongoengine160
第6章 操作處理CSV文件163
6.1 內置CSV模塊介紹163
6.1.1 內置成員163
6.1.2 操作CSV文件165
6.1.3 提取CSV數(shù)據并保存到MySQL
數(shù)據庫172
6.1.4 提取CSV數(shù)據并保存到SQLite
數(shù)據庫176
6.2 爬取圖書信息并保存為CSV
文件178
6.2.1 實例介紹178
6.2.2 具體實現(xiàn)178
6.3 使用CSV文件保存Scrapy抓取的
數(shù)據181
6.3.1 搭建Scrapy環(huán)境182
6.3.2 具體實現(xiàn)182
第7章 操作處理JSON數(shù)據185
7.1 類型轉換185
7.2 JSON編碼和解碼186
7.2.1 json模塊基礎186
7.2.2 JSON數(shù)據的基本操作187
7.3 分析JSON格式的世界人口
數(shù)據195
7.3.1 輸出每個國家2010年的人口
數(shù)量195
7.3.2 獲取兩個字母的國別碼196
7.4 挖掘并分析日志文件數(shù)據197
7.4.1 檢查JSON日志的Python腳本197
7.4.2 將MySQL操作日志保存到數(shù)據庫
文件200
7.4.3 將日志中JSON數(shù)據保存為CSV
格式204
7.5 統(tǒng)計分析朋友圈的數(shù)據207
7.5.1 將朋友圈數(shù)據導出到JSON文件207
7.5.2 統(tǒng)計處理JSON文件中的朋友圈
數(shù)據208
7.6 爬蟲抓取照片資料212
7.6.1 系統(tǒng)設置212
7.6.2 設置爬蟲items選項213
7.6.3 實現(xiàn)爬蟲抓取213
7.6.4 保存照片信息215
7.6.5 運行調試216
第8章 使用庫matplotlib實現(xiàn)數(shù)據
可視化處理217
8.1 安裝庫matplotlib217
8.2 庫matplotlib的基本操作219
8.2.1 繪制點219
8.2.2 繪制折線220
8.2.3 設置標簽文字和線條粗細221
8.2.4 自定義散點圖樣式222
8.2.5 繪制柱狀圖224
8.2.6 繪制多幅子圖230
8.2.7 繪制曲線231
8.3 繪制隨機漫步圖233
8.3.1 在Python程序中生成隨機漫步
數(shù)據233
8.3.2 在Python程序中繪制隨機
漫步圖235
8.4 大數(shù)據分析某年最高溫度和最低
溫度236
8.5 在Tkinter中使用matplotlib繪制
圖表238
8.6 爬取熱門電影信息并制作數(shù)據
分析餅狀圖239
8.6.1 創(chuàng)建MySQL數(shù)據庫239
8.6.2 抓取并分析電影數(shù)據242
第9章 使用庫pygal實現(xiàn)數(shù)據可視化
處理246
9.1 安裝庫pygal246
9.2 pygal的基本操作247
9.2.1 使用pygal繪制條形圖247
9.2.2 使用pygal繪制直方圖248
9.2.3 使用pygal繪制XY線圖248
9.2.4 使用pygal繪制餅狀圖249
9.2.5 使用pygal繪制雷達圖250
9.2.6 使用pygal模擬擲骰子251
9.3 分析與圖書銷售相關的數(shù)據254
9.3.1 分析某出版社開發(fā)類圖書的銷售
數(shù)據254
9.3.2 繪制圖書銷售數(shù)據的疊加柱狀圖和
疊加折線圖256
9.3.3 繪制圖書銷售數(shù)據儀表圖256
9.4 使用pygal分析網絡數(shù)據258
9.4.1 統(tǒng)計前30名GitHub最受歡迎的
Python庫258
9.4.2 使用pygal實現(xiàn)數(shù)據可視化261
9.5 繪制比特幣收盤價數(shù)據折線圖263
9.5.1 準備數(shù)據文件263
9.5.2 繪制圖形263
第10章 使用庫numPy實現(xiàn)數(shù)據可視化
處理266
10.1 庫numPy基礎266
10.1.1 多維數(shù)組操作266
10.1.2 構造數(shù)組和索引數(shù)組267
10.1.3 數(shù)組操作函數(shù)268
10.2 庫numPy通用函數(shù)271
10.2.1 字符串函數(shù)271
10.2.2 算數(shù)運算函數(shù)273
10.2.3 統(tǒng)計函數(shù)275
10.2.4 排序、搜索和計數(shù)函數(shù)276
10.2.5 字節(jié)交換277
10.3 聯(lián)合使用numPy和
matplotlib278
10.3.1 在numPy中使用matplotlib
繪圖278
10.3.2 在numPy中使用matplotlib繪制
正弦波圖279
10.3.3 在numPy中使用matplotlib繪制
直方圖280
10.4 大數(shù)據分析最受歡迎的兒童
名字280
10.4.1 需要用到的庫280
10.4.2 下載數(shù)據文件281
10.4.3 分析兒童的名字283
第11章 使用庫pandas實現(xiàn)數(shù)據可視化
處理292
11.1 安裝庫pandas292
11.2 從CSV文件讀取數(shù)據293
11.2.1 讀取顯示CSV文件中的前3條
數(shù)據293
11.2.2 讀取顯示CSV文件中指定列的
數(shù)據297
11.2.3 以統(tǒng)計圖方式顯示CSV文件中的
數(shù)據298
11.2.4 選擇指定數(shù)據299
11.3 日期相關操作306
11.3.1 統(tǒng)計每個月的騎行數(shù)據306
11.3.2 顯示某街道前5天的騎行數(shù)據
信息307
11.3.3 統(tǒng)計周一到周日每天的數(shù)據308
11.3.4 使用matplotlib圖表統(tǒng)計數(shù)據309
11.4 分析服務器日志數(shù)據312
11.4.1 分析統(tǒng)計每個enrollment_id事件的
總數(shù)312
11.4.2 統(tǒng)計每種時間的個數(shù)和占用
比率313
11.5 使用pandas提取數(shù)據并構建
Neo4j知識圖譜314
11.5.1 使用pandas提取Excel數(shù)據314
11.5.2 將數(shù)據保存到Neo4j數(shù)據庫并構建
知識圖譜318
第12章 大數(shù)據實戰(zhàn):電影票房
系統(tǒng)322
12.1 背景介紹322
12.2 需求分析322
12.3 模塊架構323
12.4 爬取數(shù)據323
12.4.1 分析網頁324
12.4.2 破解反爬325
12.4.3 構造請求頭328
12.4.4 實現(xiàn)具體爬蟲功能329
12.4.5 將爬取的信息保存到數(shù)據庫331
12.5 數(shù)據分析334
12.5.1 電影票房TOP10334
12.5.2 電影評分TOP10335
12.5.3 電影人氣TOP10337
12.5.4 每月電影上映數(shù)量338
12.5.5 每月電影票房339
12.5.6 名利雙收TOP10341
12.5.7 叫座不叫好TOP10342
12.5.8 電影類型分布344