本書是一本通過實戰教初學者學習采集數據、清洗和組織數據進行分析及可視化的 Python 讀物。書中案例均經過實戰檢驗,筆者在實踐過程中深感采集數據、清洗和組織數據的重要性,作為一名數據行業的碼農,數據就是沃土,沒有數據,我們將無田可耕。
本書共分 11 章, 6 個核心主題:其一是 Python 基礎入門,包括環境配置、基本操作、數據類型、語句和函數;其二是 Python 爬蟲的構建,包括網頁結構解析、爬蟲流程設計、代碼優化、效率優化、容錯處理、 反防爬蟲、 表單交互和模擬頁面點擊;
其三是 Python 數據庫應用, 包括 MongoDB、 MySQL 在 Python中的連接與應用;其四是數據清洗和組織,包括 NumPy 數組知識、 pandas 數據的讀寫、分組變形、缺失值異常值處理、時序數據處理和正則表達式的使用;其五是綜合應用案例,幫助讀者貫穿爬蟲、數據清洗與組織的過程;*后是數據可視化,包括 Matplotlib 和 Pyecharts 兩個庫的使用,涉及餅圖、柱形圖、線圖、詞云圖、地圖等圖形,幫助讀者進入可視化的殿堂。
本書以實戰為主,適合
Python 初學者及高等院校的相關專業學生,也適合 Python 培訓機構作為實驗教材使用。
零一
原名陳海城,
零一數據學院創始人,
電商數據專家,數據分析師,開發工程師。
從事培訓教育、數據分析和人工智能行業。
黃園園,具有十年軟件開發經驗,全棧工程師,六西格瑪黑帶,精通Python和機器學習算法,具有豐富的分布式爬蟲開發經驗;曾在蘇州三星電子電腦(SESC)、新加坡電信(NCS)、希捷科技(Seagate Technology)等世界知名企業研發部工作,參與過花旗銀行在線支付系統、銀行賬單自動化審核系統等大型軟件開發,曾任杭州沐垚科技CTO。
韓要賓,杭州沐垚科技有限公司 COO,CDA數據分析研究院資深講師;5年電商從業經驗,4年數據挖掘實戰經驗;專注于數據分析與挖掘、機器學習、深度學習,服務客戶包括蘇寧易購、迪卡儂、百草味、浙江師范大學等。
第 1 章 Python 基礎 /1
1.1 安裝 Python 環境 /1
1.1.1 Python 3.6.2 安裝與配置 /1
1.1.2 使用 IDE 工具PyCharm /4
1.1.3 使用 IDE 工具Anaconda / 4
1.2 Python 操作入門/6
1.2.1 編寫第一個 Python 代碼/6
1.2.2 Python 基本操作/9
1.2.3 變量/10
1.3 Python 數據類型/10
1.3.1 數字/10
1.3.2 字符串/11
1.3.3 列表/13
1.3.4 元組/14
1.3.5 集合/15
1.3.6 字典/15
1.4 Python 語句與函數/16
1.4.1 條件語句/16
1.4.2 循環語句/16
1.4.3 函數/17
第 2 章 寫一個簡單的爬蟲/18
2.1 關于爬蟲的合法性/18
2.2 了解網頁/20
2.2.1 認識網頁結構/ 21
2.2.2 寫一個簡單的 HTML/21
2.3 使用 requests 庫請求網站/23
2.3.1 安裝
requests 庫/23
2.3.2 爬蟲的基本原理/25
2.3.3 使用 GET 方式抓取數據/26
2.3.4 使用 POST 方式抓取數據/27
2.4 使用 Beautiful Soup 解析網頁/30
2.5 清洗和組織數據/34
2.6 爬蟲攻防戰/35
第 3 章
用 API 爬取天氣預報數據/38
3.1 注冊免費 API 和閱讀技術文檔/38
3.2 獲取 API 數據/40
3.3 存儲數據到 MongoDB /45
3.3.1 下載并安裝 MongoDB/ 45
3.3.2 在 PyCharm 中安裝 Mongo
Plugin/ 46
3.3.3 將數據存入 MongoDB/49
3.4 MongoDB 數據庫查詢/52
第 4 章
大型爬蟲案例:抓取某電商網站的商品數據/55
4.1 觀察頁面特征和解析數據/55
4.2 工作流程分析/64
4.3 構建類目樹/65
4.4 獲取產品列表/ 68
4.5 代碼優化/70
4.6 爬蟲效率優化/74
4.7 容錯處理/77
第 5 章 Scrapy 爬蟲/78
5.1 Scrapy 簡介/78
5.2 Scrapy 安裝/79
5.3 案例:用 Scrapy 抓取股票行情/ 80
第 6 章 Selenium 爬蟲/88
6.1 Selenium 簡介/88
6.2 案例:用 Selenium 抓取電商網站數據/90
第 7 章
數據庫連接和查詢/100
7.1 使用 PyMySQL/100
7.1.1 連接數據庫/100
7.1.2 案例:某電商網站女裝行業 TOP100 銷量數據/102
7.2 使用 SQLAlchemy/104
7.2.1 SQLAlchemy 基本介紹/104
7.2.2 SQLAlchemy 基本語法/105
7.3 MongoDB/107
7.3.1 MongoDB 基本語法/107
7.3.2 案例:在某電商網站搜索連衣裙的商品數據/107
第 8 章 NumPy/109
8.1 NumPy 簡介/109
8.2 一維數組/110
8.2.1 數組與列表的異同/110
8.2.2 數組的創建/111
8.3 多維數組/111
8.3.1 多維數組的高效性能/112
8.3.2 多維數組的索引與切片/113
8.3.3 多維數組的屬性/113
8.4 數組的運算/115
第 9 章 pandas 數據清洗/117
9.1 數據讀寫、選擇、整理和描述/117
9.1.1 從 CSV 中讀取數據/119
9.1.2 向 CSV 寫入數據/120
9.1.3 數據選擇/120
9.1.4 數據整理/122
9.1.5 數據描述/123
9.2 數據分組、分割、合并和變形/124
9.2.1 數據分組/124
9.2.2 數據分割/127
9.2.3 數據合并/128
9.2.4 數據變形/134
9.2.5 案例:旅游數據的分析與變形/136
9.3 缺失值、異常值和重復值處理/140
9.3.1 缺失值處理/140
9.3.2 檢測和過濾異常值/144
9.3.3 移除重復數據/147
9.3.4 案例:旅游數據的值檢查與處理/149
9.4 時序數據處理/152
9.4.1 日期/時間數據轉換/152
9.4.2 時序數據基礎操作/153
9.4.3 案例:天氣數據分析與處理/155
9.5 數據類型轉換/158
9.6 正則表達式/ 160
9.6.1 元字符與限定符/161
9.6.2 案例:用正則表達式提取網頁文本信息/162
第 10 章
綜合應用實例/164
10.1 按性價比給用戶推薦旅游產品/164
10.1.1 數據采集/165
10.1.2 數據清洗、建模/169
10.2 通過熱力圖分析為用戶提供出行建議/172
10.2.1 某旅游網站熱門景點爬蟲代碼(qunaer_sights.py)/175
10.2.2 提取 CSV 文件中經緯度和銷量信息/178
10.2.3 創建景點門票銷量熱力地圖 HTML 文件/179
第 11 章
數據可視化/182
11.1 matplotlib/183
11.1.1 畫出各省份平均價格、各省份平均成交量柱狀圖/183
11.1.2 畫出各省份平均成交量折線圖、柱狀圖、箱形圖和餅圖/184
11.1.3 畫出價格與成交量的散點圖/185
11.2 pyecharts/186
11.2.1 Echarts 簡介/186
11.2.2 pyecharts 簡介/187
11.2.3 初識 pyecharts,玫瑰相送/187
11.2.4 pyecharts 基本語法/188
11.2.5 基于商業分析的 pyecharts 圖表繪制/190
11.2.6 使用 pyecharts 繪制其他圖表/199
11.2.7 pyecharts 和 Jupyter/203