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