本書主要介紹了如何使用Python進(jìn)行數(shù)據(jù)清洗、轉(zhuǎn)換和整合,以及如何確保數(shù)據(jù)的準(zhǔn)確性和一致性。本書涵蓋了數(shù)據(jù)整理基礎(chǔ)、數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)整合、數(shù)據(jù)質(zhì)量檢查和數(shù)據(jù)可視化等內(nèi)容。
數(shù)據(jù)無處不在,它們蘊(yùn)含著獨(dú)特的信息和有價值的故事,本書將幫助你發(fā)掘它們。無論你已經(jīng)開始處理數(shù)據(jù),還是想要學(xué)習(xí)如何處理數(shù)據(jù),都能通過本書中的示例與技術(shù)學(xué)會更好地清洗、評估并分析數(shù)據(jù),以形成有意義的洞見,并制作出有說服力的可視化圖表。
作者既講解了基本概念,也給出了專業(yè)建議,并且提供了相應(yīng)的資源來幫助大家學(xué)會提取、評估并分析各種數(shù)據(jù)源和數(shù)據(jù)格式。另外,作者還講解了相應(yīng)的工具,讓你能夠有效地與他人交流,讓對方了解自己通過分析這些數(shù)據(jù)所得到的觀點(diǎn)。本書沒有艱深的術(shù)語,適合各種水平的數(shù)據(jù)從業(yè)者閱讀,無論你是純粹的新手還是有經(jīng)驗(yàn)的專業(yè)人士,都可以通過本書學(xué)會如何駕馭數(shù)據(jù)。
通過學(xué)習(xí)本書,你將:
? 使用Python 3.8以上的版本讀寫和轉(zhuǎn)換各種來源的數(shù)據(jù)。
? 理解并使用基本的Python編程技術(shù)來整理大規(guī)模的數(shù)據(jù)。
? 使用各種經(jīng)驗(yàn)法則來組織代碼的結(jié)構(gòu)并為其撰寫文檔。
? 從結(jié)構(gòu)化數(shù)據(jù)文件、網(wǎng)頁和API中收集數(shù)據(jù)。
? 執(zhí)行基本的統(tǒng)計(jì)分析,以便從數(shù)據(jù)集中得出有意義的結(jié)論。
? 用清晰且具有說服力的方式可視化和展示數(shù)據(jù)。
Susan E. McGregor 是哥倫比亞大學(xué)數(shù)據(jù)科學(xué)研究所的研究員,也是該研究所數(shù)據(jù)、媒
體和社會中心的聯(lián)合主管。十多年來,她一直在向非理工科的專業(yè)人士、研究生及本科
生講授編程與數(shù)據(jù)分析課程,并不斷完善自己的教學(xué)方式。
McGregor 于 2011 年加入哥倫比亞大學(xué)新聞學(xué)院及 Tow 數(shù)字新聞中心,此后,她一直在
哥倫比亞大學(xué)任教并從事研究工作。McGregor 開設(shè)了學(xué)院的首個數(shù)據(jù)新聞?wù)n程,并擔(dān)任
新聞學(xué)及計(jì)算機(jī)科學(xué)雙學(xué)位計(jì)劃的導(dǎo)師。她主要研究與新聞工作者及媒體有關(guān)的安全及
隱私問題,她的第一本書 Information Security Essentials: A Guide for Reporters, Editors,
and Newsroom Leaders(哥倫比亞大學(xué)出版社,2021)討論的也是這個話題。
加入哥倫比亞大學(xué)之前,McGregor 在《華爾街日報(bào)》的 News Graphics 團(tuán)隊(duì)做了幾年
資深程序員。她參與制作了該報(bào)的“ What They Know”系列,并由此獲得 2011 年的
Gerald Loeb Award 獎。McGregor 在許多討論安全及隱私的前沿學(xué)術(shù)會議上發(fā)言并發(fā)表
文章。她的工作受到美國國家科學(xué)基金會、奈特基金會(Knight Foundation)、Google 以
及哥倫比亞大學(xué)多個學(xué)院與機(jī)構(gòu)的資助。McGregor 還關(guān)注如何運(yùn)用藝術(shù)來激發(fā)批判思
維,以及如何通過藝術(shù)給技術(shù)問題帶來新的思路。她擁有哈佛大學(xué)交互信息設(shè)計(jì)學(xué)士學(xué)
位及紐約大學(xué)教育傳播與技術(shù)碩士學(xué)位。
目錄
前言1
第1章 數(shù)據(jù)整理與數(shù)據(jù)質(zhì)量簡介7
1.1 什么是數(shù)據(jù)整理8
1.2 什么是數(shù)據(jù)質(zhì)量9
1.3 為什么選用Python語言整理數(shù)據(jù)12
1.4 編寫并運(yùn)行Python代碼14
1.5 如何在自己的設(shè)備上編寫Python代碼16
1.6 在網(wǎng)頁版的開發(fā)環(huán)境中編寫Python代碼25
1.7 編寫“Hello World!”程序25
1.8 添加代碼28
1.9 運(yùn)行代碼29
1.10 撰寫文檔、保存工作資料和管理不同版本的資料29
1.11 小結(jié)40
第2章 Python 入門41
2.1 詞性42
2.2 用循環(huán)結(jié)構(gòu)與條件結(jié)構(gòu)控制程序的走向51
2.3 代碼中可能出現(xiàn)的各種錯誤59
2.4 用Citi Bike數(shù)據(jù)來演示如何編寫數(shù)據(jù)整理程序67
2.5 小結(jié)74
第3章 了解數(shù)據(jù)質(zhì)量75
3.1 判斷數(shù)據(jù)是否合適77
3.2 判斷數(shù)據(jù)是否完整83
3.3 提升數(shù)據(jù)的質(zhì)量92
3.4 小結(jié)94
第4章 用Python處理基于文件與基于feed的數(shù)據(jù)95
4.1 結(jié)構(gòu)化的數(shù)據(jù)與非結(jié)構(gòu)化的數(shù)據(jù)97
4.2 處理結(jié)構(gòu)化的數(shù)據(jù)101
4.3 以了解失業(yè)情況為例來整理現(xiàn)實(shí)數(shù)據(jù)110
4.4 處理非結(jié)構(gòu)化的數(shù)據(jù)141
4.5 小結(jié)147
第5章 訪問網(wǎng)絡(luò)數(shù)據(jù)148
5.1 聯(lián)網(wǎng)訪問在線的 XML 與 JSON 數(shù)據(jù)150
5.2 API 簡介152
5.3 以搜索引擎為例講解如何調(diào)用基本的API153
5.4 如何調(diào)用帶有基本身份認(rèn)證機(jī)制的API155
5.5 閱讀API文檔157
5.6 使用Python時保護(hù)你的API密鑰160
5.7 如何調(diào)用帶有 OAuth 認(rèn)證機(jī)制的API166
5.8 調(diào)用API時所應(yīng)遵循的行為準(zhǔn)則178
5.9 獲取數(shù)據(jù)的最后一招:網(wǎng)頁抓取180
5.10 小結(jié)189
第6章 評估數(shù)據(jù)質(zhì)量190
6.1 流行病與PPP192
6.2 評估數(shù)據(jù)的完整程度192
6.3 評估數(shù)據(jù)的適合程度220
6.4 小結(jié)225
第7章 清洗、轉(zhuǎn)換和增強(qiáng)數(shù)據(jù)227
7.1 如何從 Citi Bike 數(shù)據(jù)中選取一部分內(nèi)容228
7.2 把數(shù)據(jù)文件清洗干凈238
7.3 把 Excel 表格中的日期處理好241
7.4 把定寬數(shù)據(jù)轉(zhuǎn)換成真正的 CSV 文件244
7.5 修正拼寫不一致的現(xiàn)象246
7.6 為了找到簡單方案而走過的彎路251
7.7 一些容易出錯的地方254
7.8 增強(qiáng)數(shù)據(jù)255
7.9 小結(jié)257
第 8 章 調(diào)整并重構(gòu)代碼259
8.1 重新思考自定義的函數(shù)259
8.2 什么是作用域261
8.3 為函數(shù)設(shè)計(jì)參數(shù)263
8.4 返回值266
8.5 以嵌套的形式調(diào)用函數(shù)267
8.6 既有趣又有用的重構(gòu)269
8.7 用 pydoc 給自定義的腳本與函數(shù)撰寫文檔279
8.8 讓Python腳本支持命令行參數(shù)283
8.9 命令行腳本與notebook的區(qū)別286
8.10 小結(jié)287
第9章 數(shù)據(jù)分析入門288
9.1 情境很重要289
9.2 常規(guī)與反常290
9.3 評估集中趨勢291
9.4 另辟蹊徑:識別異常值293
9.5 數(shù)據(jù)分析可視化293
9.6 這些200萬美元的貸款記錄是怎么回事306
9.7 注意按比例計(jì)算317
9.8 小結(jié)320
第10章 展示數(shù)據(jù)322
10.1 視覺說服力323
10.2 把整理數(shù)據(jù)后形成的觀點(diǎn)表達(dá)出來325
10.3 如何選擇圖表326
10.4 視覺說服力要素342
10.5 通過 seaborn與matplotlib庫自定義更好的可視化圖表346
10.6 提高設(shè)計(jì)水平351
10.7 小結(jié)352
第11章 Python 以外的工具353
11.1 查看數(shù)據(jù)的其他工具353
11.2 分享并展示數(shù)據(jù)的其他工具357
11.3 考慮原則問題359
11.4 小結(jié)360
附錄A 其他Python編程資源361
附錄B 再講一講 Git365
附錄C 獲取數(shù)據(jù)的渠道371
附錄D 與可視化及信息設(shè)計(jì)有關(guān)的資源376