Python 爬蟲、數據分析與可視化:工具詳解與案例實戰

成立明,胡書敏,黃勇著

立即出貨

買這商品的人也買了...

商品描述

全書共13章。
第1~4章為基礎篇,主要講述Python基礎知識、Python數據結構、
面向對象程序設計思想,Python異常處理和讀寫文件的技巧;
第5~7章為數據分析的工具篇,主要講述Numpy庫、
Pandas庫和Matplotlib庫的基本功能和應用;
第8章和第9章為“數據分析高級技能篇”,主要講述通過爬取技術博客案例、
基於Scrapy爬蟲框架的實用技巧、數據分析的常用方法,
如Python連接操作數據庫的相關技能,基於時間序列、
概率分析、推斷統計和回歸分析方法的數學分析方法;
第10~13章為“綜合案例篇”,主要講述二手房數據分析案例、
股票數據分析案例以及基於Sklearn庫的機器學習相關實踐。

作者簡介

黃勇,武漢大學軟件工程碩士,上海助睿信息科技有限公司創始人。系統分析師、信息系統項目管理師,致力於軟件技術培訓,為高校Python跨境電商項目提供全方位的技術諮詢與輔導。

目錄大綱

目錄
前言
第1章 Python編程基礎 1
1.1 搭建Python開發環境 1
1.1.1 安裝Python解釋器 1
1.1.2 安裝Python第三方開發包 2
1.1.3 在PyCharm里新建項目和文件 3
1.1.4 在PyCharm裡更換Python解釋器 5
1.2 實踐Python基本語法 5
1.2.1 針對基本數據類型的操作 6
1.2.2 針對字符串的操作 7
1.2.3 多行註釋與引入中文 8
1.2.4 條件分支語句 9
1.2.5 循環操作語句 9
1.2.6 break和continue的用法 10
1.2.7 格式化輸出語句 11
1.3 定義和調用函數 11
1.4 return的重要性——函數的遞歸調用 12
1.5 熟悉函數的特殊寫法 13
1.5.1 函數作為參數 14
1.5.2 函數作為返回結果 14
1.5.3 匿名函數 15
1.6 本章小結 15

第2章 Python的數據結構 16
2.1 列表 16
2.1.1 定義列表 16
2.1.2 在列表中增、刪、改元素 17
2.1.3 列表的切片操作 18
2.1.4 遍歷列表 19
2.1.5 列表的常見用法 19
2.2 元組 20
2.2.1 創建和使用元組 20
2.2.2 元組的常見用法 21
2.3 集合 22
2.3.1 創建和使用集合 22
2.3.2 針對集合的常用數據操作 23
2.4 字典 23
2.4.1 創建和使用字典 24
2.4.2 增加、刪除和修改字典中的元素 24
2.4.3 遍歷字典 25
2.5 針對數據結構的通用性操作 25
2.5.1 通過map方法實現序列的映射 25
2.5.2 filter方法與數據篩選 26
2.5.3 通過reduce方法實現累計效果 27
2.5.4 通過sorted方法排序對象 27
2.6 本章小結 28

第3章 Python面向對象編程 29
3.1 什麼是面向對象思想 29
3.2 封裝特性 30
3.2.1 創建類並在類裡封裝屬性和方法 30
3.2.2 類方法的第一個參數必須指向實例 31
3.2.3 私有屬性的典型錯誤用法 31
3.2.4 了解其他常用魔術方法 33
3.2.5 從私有屬性和私有方法體會封裝特性 34
3.3 繼承特性 35
3.3.1 繼承的語法和使用場景 35
3.3.2 子類無法使用父類的私有屬性和方法 36
3.3.3 受保護的屬性和方法 37
3.3.4 多重繼承與組合模式 38
3.4 多態特性 40
3.4.1 以迭代器為例來理解多態 40
3.4.2 可變參數與方法重載 41
3.4.3 整合使用多態和繼承 42
3.5 模塊、包以及第三方庫 43
3.5.1 通過import重用現有模塊中的功能 43
3.5.2 自定義包和使用包 43
3.5.3 引入並使用第三方庫 44
3.6 本章小結 45

第4章 異常處理機制與文件讀寫 46
4.1 通過try…except…finally處理異常 46
4.1.1 處理異常的try…except從句 46
4.1.2 使用異常處理類 47
4.1.3 同時處理多個異常 48
4.1.4 在處理異常時引入else代碼塊 49
4.1.5 引入finally從句 50
4.2 raise與except的整合使用 51
4.2.1 通過raise拋出異常 51
4.2.2 自定義異常且與except整合使用 51
4.3 異常處理的實踐經驗 52
4.3.1 盡可能縮小try的代碼塊 53
4.3.2 用專業的異常處理類針對性地處理異常 53
4.3.3 拿到異常別忽視 54
4.3.4 合理確定異常的影響範圍 54
4.4 在讀寫文件案例中使用異常機制 55
4.4.1 通過os.path獲取目錄和文件屬性 55
4.4.2 以只讀模式打開文件 56
4.4.3 逐行讀取文件 58
4.4.4 通過write寫文件 59
4.4.5 以添加的方式寫文件 59
4.4.6 讀寫csv文件 60
4.5 本章小結 61

第5章 NumPy數組處理 62
5.1 NumPy庫的基礎數據結構:ndarray對象 62
5.1.1 通過array方法創建ndarray 62
5.1.2 ndarray的dtype屬性 63
5.1.3 創建全0或全1的ndarray 64
5.2 NumPy庫的常用操作 65
5.2.1 通過arange方法創建序列數組 65
5.2.2 針對ndarray的數學運算 66
5.2.3 常用的科學計算函數 67
5.2.4 常用的聚合統計函數 68
5.2.5 遍歷ndarray數組 69
5.3 針對ndarray的索引和切片操作 69
5.3.1 索引操作 69
5.3.2 布爾索引與條件過濾 70
5.3.3 切片操作與共享內存 70
5.3.4 通過copy函數創建副本 72
5.4 本章小結 72

第6章 Pandas數據清洗 73
6.1 以一維方式存儲數據的Series對象 73
6.1.1 Series的常規操作 74
6.1.2 創建並使用Series索引 75
6.1.3 獲取Series裡的切片數據 76
6.1.4 通過布爾Series獲取滿足條件的元素 78
6.1.5 遍歷Series數據 78
6.2 以表格格式存儲數據的DataFrame對象 79
6.2.1 DataFrame對象的常規用法 79
6.2.2 通過loc、iloc和ix提取數據 81
6.2.3 遍歷DataFrame裡的數據 82
6.3 面向DataFrame的常用數據分析方法 82
6.3.1 對DataFrame數據進行排序 83
6.3.2 以列為單位進行運算 83
6.3.3 增加和刪除列 84
6.3.4 過濾和重設數據 85
6.3.5 在DataFrame中進行數據統計分析 85
6.3.6 衡量變量間關聯程度的corr方法 86
6.4 Pandas與各類文件的交互 87
6.4.1 DataFrame數據與csv文件的相互轉換 87
6.4.2 NaN與缺失值處理 89
6.4.3 DataFrame數據與Excel文件的相互轉換 90
6.4.4 DataFrame數據與json文件的相互轉換 91
6.5 本章小結 92

第7章 Matplotlib數據可視化 93
7.1 通過Matplotlib繪製各類圖形 93
7.1.1 繪製折線圖 93
7.1.2 繪圖時的通用屬性參數 94
7.1.3 繪製柱狀圖 95
7.1.4 繪製餅圖 97
7.1.5 繪製直方圖 98
7.2 設置坐標的技巧 99
7.2.1 設置x和y坐標標籤文字並展示中文 99
7.2.2 設置坐標的範圍 100
7.2.3 設置坐標的主刻度和次刻度 101
7.2.4 設置並旋轉坐標刻度文字 102
7.3 增加可視化美觀效果 103
7.3.1 設置圖例 104
7.3.2 設置中文標題 105
7.3.3 設置網格效果 106
7.4 設置多圖和子圖效果 107
7.4.1 通過figure對象同時繪製多張圖 107
7.4.2 通過add_subplot方法繪製子圖 108
7.4.3 通過subplot方法繪製子圖 109
7.4.4 子圖共享x坐標軸 110
7.4.5 在大圖裡繪製子圖 112
7.5 繪製高級圖表 113
7.5.1 繪製散點圖 113
7.5.2 繪製熱圖 114
7.5.3 繪製等值線圖 115
7.6 通過mplot3d繪製三維圖形 116
7.6.1 繪製三維曲線圖 116
7.6.2 繪製三維散點圖 117
7.6.3 繪製三維柱狀圖 118
7.7 本章小結 119

第8章 通過網絡爬蟲獲取數據 120
8.1 和爬蟲有關的HTTP 120
8.1.1 基於HTTP的請求處理流程 120
8.1.2 HTTP請求頭包含操作系統和瀏覽器信息 122
8.1.3 Post和Get請求方法 122
8.1.4 HTTP常見的狀態碼 122
8.2 通過Urllib庫獲取網頁信息 123
8.2.1 通過request爬取網頁 123
8.2.2 設置超時時間 124
8.2.3 用URLError處理網絡異常 124
8.2.4 設置header屬性來模擬瀏覽器發送請求 125
8.3 通過BeautifulSoup提取頁面信息 125
8.3.1 安裝BeautifulSoup庫 125
8.3.2 用Tag提取HTML元素和屬性 126
8.3.3 用NavigableString提取元素值 127
8.3.4 用Comment提取註釋 127
8.3.5 制定規則搜索指定的內容 128
8.4 通過正則表達式截取信息 130<...