- Python數(shù)據(jù)科學(xué)實(shí)戰(zhàn)
- (俄)尤利·瓦西列夫
- 1598字
- 2024-01-31 18:22:37
1.3 數(shù)據(jù)處理流程
在本節(jié)中,我們將從概念上了解數(shù)據(jù)處理(也稱為數(shù)據(jù)處理流程)涉及的步驟。通常的數(shù)據(jù)處理流程包含如下步驟。
(1)數(shù)據(jù)獲取。
(2)數(shù)據(jù)清洗。
(3)數(shù)據(jù)變換。
(4)數(shù)據(jù)分析。
(5)數(shù)據(jù)存儲(chǔ)。
這些步驟并不總是完全涇渭分明的。在某些應(yīng)用中,你可以將多個(gè)步驟合并為一個(gè)步驟;而在某些應(yīng)用中,你也可以省略某些步驟。
1.3.1 數(shù)據(jù)獲取
在處理數(shù)據(jù)之前,需要先獲取數(shù)據(jù)。這就是為什么數(shù)據(jù)獲取是任何數(shù)據(jù)處理流程的第一步。在常見的數(shù)據(jù)源類型中,一些數(shù)據(jù)源只允許你根據(jù)請(qǐng)求加載所需的部分?jǐn)?shù)據(jù)。
例如,對(duì)Yahoo Finance API的請(qǐng)求要求你指定公司的股票代碼以及檢索該公司股票價(jià)格的時(shí)間段。類似地,允許你檢索新聞文章的News API可以使用多個(gè)參數(shù)以縮小所請(qǐng)求文章的列表,包括來源和發(fā)布日期。盡管有這些參數(shù),但是檢索到的列表可能仍需要進(jìn)一步過濾。也就是說,數(shù)據(jù)可能需要清洗。
1.3.2 數(shù)據(jù)清洗
數(shù)據(jù)清洗是檢測(cè)和糾正錯(cuò)誤的或不準(zhǔn)確的數(shù)據(jù)或刪除不必要數(shù)據(jù)的過程。在某些情況下,這一步是不需要的,所獲得的數(shù)據(jù)可以立即用于分析。例如,yfinance庫(Yahoo Finance API的Python包裝器)將股票數(shù)據(jù)作為易于使用的pandas庫的數(shù)據(jù)框?qū)ο蠓祷?。這通常允許你跳過數(shù)據(jù)清洗和數(shù)據(jù)變換步驟,直接進(jìn)行數(shù)據(jù)分析。
但是,如果使用網(wǎng)頁抓取獲取數(shù)據(jù),通常HTML標(biāo)簽可能會(huì)包含在數(shù)據(jù)中,那么一定要進(jìn)行數(shù)據(jù)清洗,如下所示。
6.\tThe development shall comply with the requirements of DCCa\x80\x99s Drainage Division as follows\r\n\r\n
清理后,此文本片段如下所示。
6. The development shall comply with the requirements of DCC's Drainage Division as follows
除HTML標(biāo)簽外,抓取的文本可能還包括其他不需要的文本。在以下示例中,短語A View full text是超鏈接文本。你可能需要打開此鏈接才能訪問其中的文本。
Permission for proposed amendments to planning permission received on the 30th A View full text
你還可以使用數(shù)據(jù)清洗步驟過濾特定的實(shí)體。例如,從News API請(qǐng)求一組文章后,你可能只需要選擇指定時(shí)間段內(nèi)標(biāo)題包含金錢或百分比短語的文章。此過濾器可被視為數(shù)據(jù)清洗器,因?yàn)槠淠繕?biāo)是刪除不必要的數(shù)據(jù),并為數(shù)據(jù)變換和數(shù)據(jù)分析做好準(zhǔn)備。
1.3.3 數(shù)據(jù)變換
數(shù)據(jù)變換通過改變數(shù)據(jù)的格式或結(jié)構(gòu),為數(shù)據(jù)分析做好準(zhǔn)備。例如,要從GoodComp的非結(jié)構(gòu)化文本數(shù)據(jù)中提取信息,你可以將其拆分為單個(gè)單詞或標(biāo)記,以便命名實(shí)體識(shí)別(Named Entity Recognition, NER)工具可以查找所需的信息。在信息提取中,一個(gè)命名實(shí)體通常代表現(xiàn)實(shí)世界中的一個(gè)對(duì)象,如一個(gè)人、一個(gè)組織或一個(gè)產(chǎn)品,這個(gè)對(duì)象可以用專有名詞標(biāo)識(shí)。另外,還有代表日期、百分比、財(cái)務(wù)條款等的命名實(shí)體。
許多NLP工具可以自動(dòng)處理這些變換。經(jīng)過變換后,分解的GoodComp數(shù)據(jù)如下所示。
['GoodComp', 'shares', 'soared', 'as', 'much', 'as', '8.2%', 'on', '2021-01-07', 'after', 'the', 'company', 'announced', 'positive', 'early-stage', 'trial', 'results', 'for', 'its', 'vaccine']
其他形式的數(shù)據(jù)變換可能更深入,例如,文本數(shù)據(jù)被轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)。例如,如果我們收集了一組新聞文章,我們可以通過執(zhí)行情緒分析變換它們。情緒分析是一種文本處理技術(shù),可以生成一個(gè)數(shù)字,這個(gè)數(shù)字代表文本表達(dá)的情緒。
情感分析可以使用諸如SentimentAnalyzer(在包nltk.sentiment中)之類的工具來實(shí)現(xiàn),其輸出可能如下所示。
Sentiment URL --------- ---------------------------------------------------------------- 0.9313/uk/shopping/amazon-face-mask-store-july-28/ 0.9387
/save-those-crustacean-shells-to -make-a-sauce-base-1844520024
現(xiàn)在,數(shù)據(jù)集中的每個(gè)條目都包含一個(gè)數(shù)字,如0.9313,代表相應(yīng)文章表達(dá)的情緒。通過數(shù)字形式表達(dá)每篇文章的情緒,我們可以計(jì)算整個(gè)數(shù)據(jù)集的平均情緒,從而確定對(duì)某個(gè)感興趣的對(duì)象(如某個(gè)公司或產(chǎn)品)的總體情緒。
1.3.4 數(shù)據(jù)分析
數(shù)據(jù)分析是數(shù)據(jù)處理流程中的關(guān)鍵步驟。在這里,你可以解釋原始數(shù)據(jù),從而得出某些原本不明顯的結(jié)論。
繼續(xù)情緒分析示例,你可能希望研究特定時(shí)段內(nèi)人們對(duì)公司的情緒與公司股價(jià)之間的關(guān)系?;蛘撸憧梢詫⒐墒兄笖?shù)(如標(biāo)準(zhǔn)普爾500指數(shù))與同期大量新聞表達(dá)的情緒進(jìn)行比較。下面的數(shù)據(jù)片段展示了標(biāo)準(zhǔn)普爾500指數(shù)與當(dāng)天新聞的總體情緒。
Date News_sentiment S&P_500 -------------------------------------- 2021-04-16 0.281074 4185.47 2021-04-19 0.284052 4163.26 2021-04-20 0.262421 4134.94
由于情緒數(shù)據(jù)和股票數(shù)據(jù)均用數(shù)字表示,因此你可以在同一個(gè)圖上繪制兩條對(duì)應(yīng)的曲線以進(jìn)行可視化分析,如圖1-1所示。

圖1-1 可視化數(shù)據(jù)分析的一個(gè)示例
可視化分析是解釋數(shù)據(jù)最常用、最有效的方法之一。第8章將更詳細(xì)地討論可視化分析。
1.3.5 數(shù)據(jù)存儲(chǔ)
在大多數(shù)情況下,你需要存儲(chǔ)數(shù)據(jù)分析過程中生成的結(jié)果,以便以后使用。存儲(chǔ)形式通常包括文件和數(shù)據(jù)庫。如果數(shù)據(jù)可能會(huì)頻繁使用,數(shù)據(jù)庫可能是更好的選擇。
- C# 7 and .NET Core Cookbook
- Pandas Cookbook
- PowerCLI Cookbook
- Mastering Entity Framework
- 編寫高質(zhì)量代碼:改善Python程序的91個(gè)建議
- 學(xué)Python也可以這么有趣
- Go并發(fā)編程實(shí)戰(zhàn)
- Java Web程序設(shè)計(jì)任務(wù)教程
- Apache Mahout Clustering Designs
- 零基礎(chǔ)Java學(xué)習(xí)筆記
- 移動(dòng)增值應(yīng)用開發(fā)技術(shù)導(dǎo)論
- C++程序設(shè)計(jì)教程
- Mastering jQuery Mobile
- Python+Office:輕松實(shí)現(xiàn)Python辦公自動(dòng)化
- 微前端設(shè)計(jì)與實(shí)現(xiàn)