官术网_书友最值得收藏!

四、瀝盡狂沙方見金:數(shù)據(jù)的清洗與可視化

題解 用劉禹錫《浪淘沙》中的兩句詩來形容數(shù)據(jù)清洗再恰當(dāng)不過了——“千淘萬漉雖辛苦,吹盡狂沙始到金[9]”。數(shù)據(jù)清洗是提高數(shù)據(jù)質(zhì)量、使數(shù)據(jù)變得可用的過程,數(shù)據(jù)清洗會(huì)提升數(shù)據(jù)分析的準(zhǔn)確率。


[9] 《浪淘沙九首》之八。全詩:“莫道讒言如浪深,莫言遷客似沙沉。千淘萬漉雖辛苦,吹盡狂沙始到金。”這首詩告訴我們:辛苦、委屈和磨礪都是達(dá)到目標(biāo)、實(shí)現(xiàn)價(jià)值的過程中必須經(jīng)歷的。

咖哥問小雪:“談一談你對(duì)數(shù)據(jù)清洗的看法吧。”

小雪答:“我認(rèn)識(shí)一位在銀行做數(shù)據(jù)分析師的學(xué)長。我曾問他每天都在做什么項(xiàng)目,是不是要分析給什么樣的用戶發(fā)什么卡,判斷什么樣的用戶風(fēng)險(xiǎn)高。學(xué)長很實(shí)在,告訴我其實(shí)他日常工作的大部分內(nèi)容是把數(shù)據(jù)整理成能用的格式。所以我想數(shù)據(jù)清洗是數(shù)據(jù)分析師工作中很繁重的一部分吧。”

咖哥點(diǎn)點(diǎn)頭:“的確是這樣的。”

1 “臟”數(shù)據(jù)的清洗

很多人都說做飯時(shí)油下鍋開始炒菜是最爽的環(huán)節(jié),但一般炒菜時(shí)間只占做飯時(shí)間的20%,剩下的時(shí)間都是在準(zhǔn)備食材,如買菜、擇菜、洗菜。數(shù)據(jù)清洗就是在開始“炒菜”(數(shù)據(jù)分析)之前的準(zhǔn)備工作(見下頁圖)。準(zhǔn)備工作做得越好,數(shù)據(jù)越干凈,數(shù)據(jù)分析結(jié)果就會(huì)越準(zhǔn)確。

數(shù)據(jù)清洗占數(shù)據(jù)分析師的大部分工作時(shí)間

看看下面這個(gè)從數(shù)據(jù)庫中直接提取出來的Excel表,你就會(huì)發(fā)現(xiàn),“臟”數(shù)據(jù)的種類很多。

“臟”數(shù)據(jù)的示例

數(shù)據(jù)清洗過程中主要處理下面這4種數(shù)據(jù)。

(1)缺失的數(shù)據(jù)。

這里有兩種可能的情況:一種是缺少數(shù)據(jù)記錄;另一種是有數(shù)據(jù)記錄,但是不完整。

對(duì)于缺少整條數(shù)據(jù)記錄的情況,要分析埋點(diǎn)過程中哪里存在流程或技術(shù)上的問題。對(duì)于重要數(shù)據(jù)因誤操作丟失的情況,如果備份系統(tǒng)里面還有該數(shù)據(jù),可以重新載入:如果備份系統(tǒng)里面沒有該數(shù)據(jù),試一試是否能通過原始文件手動(dòng)補(bǔ)錄。

對(duì)于有數(shù)據(jù)記錄但是含有缺失值的情況,有以下兩種處理方法。

如果含有缺失值的數(shù)據(jù)記錄不影響數(shù)據(jù)分析結(jié)果,可以將其刪除,但這樣做會(huì)減少樣本的數(shù)量。

如果不希望刪除含有缺失值的數(shù)據(jù)記錄,則可以通過一些方法補(bǔ)充缺失值,如取其他數(shù)據(jù)記錄的平均值、隨機(jī)值或者0值來補(bǔ)充缺失值,這稱為數(shù)據(jù)修復(fù)。

Python的Pandas中有工具(API[10])可以用來完成上述的刪除和補(bǔ)充缺失值工作。


[10] Pandas等Python包中提供的方法、屬性和函數(shù)統(tǒng)稱為API,即用于實(shí)現(xiàn)某種功能的程序接口。

(2)重復(fù)的數(shù)據(jù)。

完全相同的重復(fù)數(shù)據(jù)處理起來比較簡單,用數(shù)據(jù)處理工具刪除冗余數(shù)據(jù)即可。Excel和Python的Pandas中都有相應(yīng)工具或API。

但是如果同一個(gè)主鍵出現(xiàn)兩行不同的數(shù)據(jù),例如同一個(gè)身份證號(hào)出現(xiàn)兩行不同的地址數(shù)據(jù),此時(shí)要看看有沒有其他輔助信息可以幫助判斷(如時(shí)戳)哪一行數(shù)據(jù)是正確的。若無法判斷,只好刪除其中一行,或者全部保留。

(3)錯(cuò)誤的數(shù)據(jù)。

數(shù)據(jù)中可能有各種邏輯錯(cuò)誤。例如,商品的銷售量、銷售金額出現(xiàn)負(fù)值,此時(shí)就需要將其刪除或者轉(zhuǎn)成有意義的正值。又如表示百分比或概率的字段的值大于1,這也屬于邏輯錯(cuò)誤數(shù)據(jù)。

(4)不可用的數(shù)據(jù)。

還有一些數(shù)據(jù)不能算是錯(cuò)誤數(shù)據(jù),但是需要轉(zhuǎn)換格式后才能夠正確使用,如價(jià)格字段,有些以人民幣為單位,有些以美元為單位,如果直接對(duì)這些數(shù)據(jù)進(jìn)行求和,得到的結(jié)果就是錯(cuò)誤的。另一些常見例子是把“是”“否”分別轉(zhuǎn)換成“1”“0”再輸入機(jī)器學(xué)習(xí)模型,或者把多分類字段轉(zhuǎn)換成模型能夠識(shí)別的多個(gè)二分類字段。

通過數(shù)據(jù)治理將上述所有情況從源頭處理好,其效果遠(yuǎn)遠(yuǎn)好過事后補(bǔ)救。

“臟”數(shù)據(jù)清洗的工作完成之后,數(shù)據(jù)分析師的下一步工作通常是把數(shù)據(jù)可視化。

2 數(shù)據(jù)的可視化

“小雪,看一下咱們數(shù)據(jù)科學(xué)講習(xí)所的年利潤率增幅圖(見下圖)。”

給投資人看的利潤率增幅圖

小雪說:“好大的增幅啊。”

咖哥說:“很大是嗎?那你再看看下面這張圖(見下圖)。”

咖哥自己看的利潤率增幅圖

小雪定睛細(xì)看,喃喃自語:“怎么回事,一樣的數(shù)據(jù),現(xiàn)在又不覺得有多大的增幅。這是用了什么障眼法?”

咖哥笑道:“這就是數(shù)據(jù)可視化過程中的一個(gè)小技巧。”

用同樣的數(shù)據(jù)制作的圖,第一張圖適合給投資人看;而第二張圖適合給自己人看,以提醒大家不要對(duì)小小的增長過于沾沾自喜。第二張圖中的視覺增長和我們營收的實(shí)際增速一致,都約為25%;而第一張圖在并沒有修改數(shù)據(jù)的前提下把25%的營收增速在視覺上放大至近300%。

因此,數(shù)據(jù)還是那些數(shù)據(jù),如何展現(xiàn)它們,其中的學(xué)問可就太大了。

有很多種工具可以實(shí)現(xiàn)數(shù)據(jù)的可視化。

我們常接觸的Excel中可視化工具不少,基于數(shù)據(jù)透視表的透視圖就是其中之一。

專業(yè)的數(shù)據(jù)分析工具,如Power BI、Tableau等,它們也提供了強(qiáng)大的數(shù)據(jù)可視化功能。

各種商用數(shù)據(jù)分析平臺(tái),如Google Analytics、百度統(tǒng)計(jì)、GrowingIO、諸葛IO、神策數(shù)據(jù)、西瓜數(shù)據(jù),都可以實(shí)現(xiàn)數(shù)據(jù)的可視化。

Python、R語言、MATLAB語言中都有數(shù)據(jù)可視化包,如Python中常用的Matplotlib,R語言中的ggplot2。

“數(shù)據(jù)可視化與用戶體驗(yàn)直接相關(guān),那么誰是數(shù)據(jù)可視化的用戶?”咖哥問。

小雪說:“數(shù)據(jù)分析師本人?”

“當(dāng)然,還有其他部門的同事,更重要的是數(shù)據(jù)可視化后的結(jié)果往往要呈現(xiàn)給老板或者客戶。因此用戶體驗(yàn)至關(guān)重要。”

在后續(xù)的實(shí)踐篇中會(huì)講解數(shù)據(jù)可視化的大量細(xì)節(jié),這里只說一些用戶體驗(yàn)要素,可作為數(shù)據(jù)可視化的指導(dǎo)思想。

(1)永遠(yuǎn)要記得你的用戶。數(shù)據(jù)可視化的結(jié)果是數(shù)據(jù)分析師的產(chǎn)品,而產(chǎn)品是給用戶看的,要讓用戶看得懂,看得清楚。

(2)少即多,簡單就是美。盡量簡化數(shù)據(jù)可視化的結(jié)果的配色與排版。一般情況下,一張圖片中的顏色不要超過3種,字體不要超過3種,能不用的背景色就不用,不需要的網(wǎng)格線全部刪除。

(3)注意對(duì)比。單獨(dú)一行數(shù)據(jù)包含的信息有限,把兩行或兩行以上的數(shù)據(jù)放在一起展示更易于發(fā)現(xiàn)其中的問題。

(4)強(qiáng)調(diào)一致性。一系列的數(shù)據(jù)可視化的結(jié)果要基于相同的標(biāo)準(zhǔn),最好讓它們使用同樣的模板。因?yàn)槿说乃季S有慣性,要避免易引起混淆的跳躍。如果有兩張業(yè)務(wù)增長圖,其中部門A的y軸從0開始,部門B的y軸從50%開始,這兩張圖在同一份報(bào)告中出現(xiàn)就很不合適。

類似的指導(dǎo)原則還有很多。它們是我們?cè)谝婚_始就應(yīng)領(lǐng)悟的“道”。雖然“道”和“術(shù)”都很重要,但我想反復(fù)強(qiáng)調(diào)“道”。因?yàn)閷?duì)“道”的深入理解能夠讓我們走得更穩(wěn),走得更遠(yuǎn)。

主站蜘蛛池模板: 邯郸市| 获嘉县| 涡阳县| 北辰区| 民乐县| 玉树县| 潍坊市| 吉安市| 枞阳县| 拜泉县| 中阳县| 丰宁| 普安县| 江阴市| 五大连池市| 朝阳县| 吕梁市| 孝昌县| 泾源县| 绥化市| 永城市| 增城市| 尤溪县| 安义县| 共和县| 延庆县| 林州市| 都匀市| 若羌县| 安岳县| 县级市| 泽州县| 阳高县| 万年县| 大洼县| 长宁区| 宁陕县| 宣武区| 咸丰县| 四川省| 津市市|