編輯推薦
數據清洗是數據挖掘與分析過程中不可缺少的一個環節,但因為數據類型極其復雜,傳統的清洗髒數據工作單調乏味且異常辛苦。如果能利用正確的工具和方法,就可以讓數據清洗工作事半功倍。
本書從文件格式、數據類型、字符編碼等基本概念講起,通過真實的示例,探討如何提取和清洗關係型數據庫、網頁文件和PDF文檔中的數據。提供瞭兩個真實的項目,讓讀者將所有數據清洗技術付諸實踐,完成整個數據科學過程。
如果你是一位數據科學傢,或者從事數據科學工作,哪怕是位新手,隻要對數據清洗有興趣,那麼本書就適閤你閱讀!
- 理解數據清洗在整個數據科學過程中的作用
- 掌握數據清洗的基礎知識,包括文件清洗、數據類型、字符編碼等
- 發掘電子錶格和文本編輯器中與數據組織和操作相關的重要功能
- 學會常見數據格式的相互轉換,如JSON、CSV和一些特殊用途的格式
- 采用三種策略來解析和清洗HTML文件中的數據
- 揭開PDF文檔的秘密,提取需要的數據
- 藉助一係列解決方案來清洗存放在關係型數據庫裏的壞數據
- 創建自己的乾淨數據集,為其打包、添加授權許可並與他人共享
- 使用書中的工具以及Twitter和Stack Overflow數據,完成兩個真實的項目
內容簡介
本書主要內容包括:數據清洗在數據科學領域中的重要作用,文件格式、數據類型、字符編碼的基本概念,組織和處理數據的電子錶格與文本編輯器,各種格式數據的轉換方法,解析和清洗網頁上的HTML 文件的三種策略,提取和清洗PDF 文件中數據的方法,檢測和清除RDBMS 中的壞數據的解決方案,以及使用書中介紹的方法清洗來自Twitter 和Stack Overflow 的數據。
作者簡介
Megan Squire 依隆大學計算科學專業教授,主要教授數據庫係統、Web開發、數據挖掘和數據科學課程。有二十年的數據收集與清洗經驗。她還是FLOSSmole研究項目的領導者,緻力於收集與分析數據,以便研究免費軟件、自由軟件和開源軟件的開發。
目錄
目錄
第1 章 為什麼需要清洗數據 1
1.1 新視角 1
1.2 數據科學過程 2
1.3 傳達數據清洗工作的內容 3
1.4 數據清洗環境 4
1.5 入門示例 5
1.6 小結 9
第2 章 基礎知識——格式、 類型與編碼 11
2.1 文件格式 11
2.1.1 文本文件與二進製文件 11
2.1.2 常見的文本文件格式 14
2.1.3 分隔格式 14
2.2 歸檔與壓縮 20
2.2.1 歸檔文件 20
2.2.2 壓縮文件 21
2.3 數據類型、空值與編碼 24
2.3.1 數據類型 25
2.3.2 數據類型間的相互轉換 29
2.3.3 轉換策略 30
2.3.4 隱藏在數據森林中的空值 37
2.3.5 字符編碼 41
2.4 小結 46
第3 章 數據清洗的老黃牛——電子錶格和文本編輯器 47
3.1 電子錶格中的數據清洗 47
3.1.1 Excel 的文本分列功能 47
3.1.2 字符串拆分 51
3.1.3 字符串拼接 51
3.2 文本編輯器裏的數據清洗 54
3.2.1 文本調整 55
3.2.2 列選模式 56
3.2.3 加強版的查找與替換功能 56
3.2.4 文本排序與去重處理 58
3.2.5 Process Lines Containing 60
3.3 示例項目 60
3.3.1 第一步:問題陳述 60
3.3.2 第二步:數據收集 60
3.3.3 第三步:數據清洗 61
3.3.4 第四步:數據分析 63
3.4 小結 63
第4 章 講通用語言——數據轉換 64
4.1 基於工具的快速轉換 64
4.1.1 從電子錶格到CSV 65
4.1.2 從電子錶格到JSON 65
4.1.3 使用phpMyAdmin 從SQL語句中生成CSV 或JSON 67
4.2 使用PHP 實現數據轉換 69
4.2.1 使用PHP 實現SQL 到JSON的數據轉換 69
4.2.2 使用PHP 實現SQL 到CSV的數據轉換 70
4.2.3 使用PHP 實現JSON 到CSV的數據轉換 71
4.2.4 使用PHP 實現CSV 到JSON的數據轉換 71
4.3 使用Python 實現數據轉換 72
4.3.1 使用Python 實現CSV 到JSON的數據轉換 72
4.3.2 使用csvkit 實現CSV 到JSON的數據轉換 73
4.3.3 使用Python 實現JSON 到CSV的數據轉換 74
4.4 示例項目 74
4.4.1 第一步:下載GDF 格式的Facebook 數據 75
4.4.2 第二步:在文本編輯器中查看GDF 文件 75
4.4.3 第三步:從GDF 格式到JSON格式的轉換 76
4.4.4 第四步:構建D3 圖 79
4.4.5 第五步:把數據轉換成Pajek格式 81
4.4.6 第六步:簡單的社交網絡分析 83
4.5 小結 84
第5 章 收集並清洗來自網絡的數據 85
5.1 理解HTML 頁麵結構 85
5.1.1 行分隔模型 86
5.1.2 樹形結構模型 86
5.2 方法一:Python 和正則錶達式 87
5.2.1 第一步:查找並保存實驗用的Web 文件 88
5.2.2 第二步:觀察文件內容並判定有價值的數據 88
5.2.3 第三步:編寫Python 程序把數據保存到CSV 文件中 89
5.2.4 第四步:查看文件並確認清洗結果 89
5.2.5 使用正則錶達式解析HTML的局限性 90
5.3 方法二:Python 和BeautifulSoup 90
5.3.1 第一步:找到並保存實驗用的文件 90
5.3.2 第二步:安裝BeautifulSoup 91
5.3.3 第三步:編寫抽取數據用的Python 程序 91
5.3.4 第四步:查看文件並確認清洗結果 92
5.4 方法三:Chrome Scraper 92
5.4.1 第一步:安裝Chrome 擴展Scraper 92
5.4.2 第二步:從網站上收集數據 92
5.4.3 第三步:清洗數據 94
5.5 示例項目:從電子郵件和論壇中抽取數據 95
5.5.1 項目背景 95
5.5.2 第一部分:清洗來自Google Groups 電子郵件的數據 96
5.5.3 第二部分:清洗來自網絡論壇的數據 99
5.6 小結 105
第6 章 清洗PDF 文件中的數據 106
6.1 為什麼PDF 文件很難清洗 106
6.2 簡單方案——復製 107
6.2.1 我們的實驗文件 107
6.2.2 第一步:把我們需要的數據復製齣來 108
6.2.3 第二步:把復製齣來的數據粘貼到文本編輯器中 109
6.2.4 第三步:輕量級文件 110
6.3 第二種技術——pdfMiner 111
6.3.1 第一步:安裝pdfMiner 111
6.3.2 第二步:從PDF 文件中提取文本 111
6.4 第三種技術——Tabula 113
6.4.1 第一步:下載Tabula 113
6.4.2 第二步:運行Tabula 113
6.4.3 第三步:用Tabula 提取數據 114
6.4.4 第四步:數據復製 114
6.4.5 第五步:進一步清洗 114
6.5 所有嘗試都失敗之後——第四種技術 115
6.6 小結 117
第7 章 RDBMS 清洗技術 118
7.1 準備 118
7.2 第一步:下載並檢查Sentiment140 119
7.3 第二步:清洗要導入的數據 119
7.4 第三步:把數據導入MySQL 120
7.4.1 發現並清洗異常數據 121
7.4.2 創建自己的數據錶 122
7.5 第四步:清洗&字符 123
7.6 第五步:清洗其他未知字符 124
7.7 第六步:清洗日期 125
7.8 第七步:分離用戶提及、標簽和URL 127
7.8.1 創建一些新的數據錶 128
7.8.2 提取用戶提及 128
7.8.3 提取標簽 130
7.8.4 提取URL 131
7.9 第八步:清洗查詢錶 132
7.10 第九步:記錄操作步驟 134
7.11 小結 135
第8 章 數據分享的最佳實踐 136
8.1 準備乾淨的數據包 136
8.2 為數據編寫文檔 139
8.2.1 README 文件 139
8.2.2 文件頭 141
8.2.3 數據模型和圖錶 142
8.2.4 維基或CMS 144
8.3 為數據設置使用條款與許可協議 144
8.4 數據發布 146
8.4.1 數據集清單列錶 146
8.4.2 Stack Exchange 上的OpenData 147
8.4.3 編程馬拉鬆 147
8.5 小結 148
第9 章 Stack Overflow 項目 149
9.1 第一步:關於Stack Overflow 的問題 149
9.2 第二步:收集並存儲Stack Overflow數據 151
9.2.1 下載Stack Overflow 數據 151
9.2.2 文件解壓 152
9.2.3 創建MySQL 數據錶並加載數據 152
9.2.4 構建測試錶 154
9.3 第三步:數據清洗 156
9.3.1 創建新的數據錶 157
9.3.2 提取URL 並填寫新數據錶 158
9.3.3 提取代碼並填寫新錶 159
9.4 第四步:數據分析 161
9.4.1 哪些代碼分享網站最為流行 161
9.4.2 問題和答案中的代碼分享網站都有哪些 162
9.4.3 提交內容會同時包含代碼分享URL 和程序源代碼嗎 165
9.5 第五步:數據可視化 166
9.6 第六步:問題解析 169
9.7 從測試錶轉嚮完整數據錶 169
9.8 小結 170
第10 章 Twitter 項目 171
10.1 第一步:關於推文歸檔數據的問題 171
10.2 第二步:收集數據 172
10.2.1 下載並提取弗格森事件的數據文件 173
10.2.2 創建一個測試用的文件 174
10.2.3 處理推文ID 174
10.3 第三步:數據清洗 179
10.3.1 創建數據錶 179
10.3.2 用Python 為新錶填充數據 180
10.4 第四步:簡單的數據分析 182
10.5 第五步:數據可視化 183
10.6 第六步:問題解析 186
10.7 把處理過程應用到全數據量(非測試用)數據錶 186
10.8 小結 187
前言/序言
乾淨的數據 數據清洗入門與實踐 下載 mobi epub pdf txt 電子書