如何七周成為數(shù)據(jù)分析師03:手把手教你Excel實戰(zhàn)

34 評論 46840 瀏覽 190 收藏 24 分鐘

本文是?《如何七周成為數(shù)據(jù)分析師》的第三篇教程,如果想要了解寫作初衷,可以先行閱讀七周指南。溫馨提示:如果您已經(jīng)熟悉Excel,大可不必再看這篇文章,或只挑選部分。

在??《如何七周成為數(shù)據(jù)分析師01:常見的Excel函數(shù)全部涵蓋在這里了》?和《如何七周成為數(shù)據(jù)分析師02:Excel技巧大揭秘》?后,今天這篇文章講解實戰(zhàn),如何運用上兩篇文章的知識進行分析。內(nèi)容是新手向的基礎(chǔ)教程。

為了更好的了解數(shù)據(jù)分析師這個崗位,我用爬蟲爬取了招聘網(wǎng)站上約5000條的數(shù)據(jù)分析師職位數(shù)據(jù)。拿數(shù)據(jù)分析師進行數(shù)據(jù)分析。

數(shù)據(jù)真實來源于網(wǎng)絡(luò),屬于網(wǎng)站方,請勿用于商業(yè)用途。

操作版本:Excel 2016 Mac版。文件大小約2M。

演示過程分為五個步驟:明確目的,觀察數(shù)據(jù),清洗數(shù)據(jù),分析過程,得出結(jié)論。

這也是通常數(shù)據(jù)分析的簡化流程。

明確目的

數(shù)據(jù)分析的大忌是不知道分析方向和目的,拿著一堆數(shù)據(jù)不知所措。一切數(shù)據(jù)分析都是以業(yè)務(wù)為核心目的,而不是以數(shù)據(jù)為目的。

  • 數(shù)據(jù)用來解決什么問題?
  • 是進行匯總統(tǒng)計制作成報表?
  • 是進行數(shù)據(jù)可視化,作為一張信息圖?
  • 是驗證某一類業(yè)務(wù)假設(shè)?
  • 是希望提高某一個指標(biāo)的KPI?

永遠不要妄圖在一堆數(shù)據(jù)中找出自己的結(jié)論,太難。目標(biāo)在前,數(shù)據(jù)在后。哪怕給自己設(shè)立一個很簡單的目標(biāo),例如計算業(yè)務(wù)的平均值,也比沒有方向好。因為有了平均值可以想數(shù)字比預(yù)期是高了還是低了,原因在哪里,數(shù)據(jù)靠譜嗎?為了找出原因還需要哪些數(shù)據(jù)。

既然有五千多條數(shù)據(jù)分析師的崗位數(shù)據(jù)。不妨在看數(shù)據(jù)前想一下自己會怎么運用數(shù)據(jù)。

  • 數(shù)據(jù)分析師是一個什么樣的崗位?
  • 它的工資和薪酬是多少?
  • 它有什么特點,需要掌握哪些能力?
  • 哪類公司更會招聘數(shù)據(jù)分析師?

等等。

有了目標(biāo)和方向后,后續(xù)則是將目標(biāo)拆解為實際過程。

觀察數(shù)據(jù)

拿出數(shù)據(jù)別急切計算,先觀察數(shù)據(jù)。

字段名稱都是英文,我是通過Json獲取的數(shù)據(jù),所以整體數(shù)據(jù)都較為規(guī)整。絕大部分?jǐn)?shù)據(jù)源的字段名都是英文。因為比起拼音和漢字,它更適合編程環(huán)境下。

先看一下columns的含義:

city:城市
companyFullName:公司全名
companyId:公司ID
companyLabelList:公司介紹標(biāo)簽
companyShortName:公司簡稱
companySize:公司大小
businessZones:公司所在商區(qū)
firstType:職位所屬一級類目
secondType:職業(yè)所屬二級類目
education:教育要求
industryField:公司所屬領(lǐng)域
positionId:職位ID
positionAdvantage:職位福利
positionName:職位名稱
positionLables:職位標(biāo)簽
salary:薪水
workYear:工作年限要求

數(shù)據(jù)基本涵蓋了職位分析的所需。職位中的職位描述沒有抓下來,一來純文本不適合這次初級分析,二來文本需要分詞以及文本挖掘,后續(xù)有機會再講。

首先看一下哪些字段數(shù)據(jù)可以去除。companyId和positionId是數(shù)據(jù)的唯一標(biāo)示,類似該職位的身份證號,這次分析用不到關(guān)聯(lián)vlookup,我們先隱藏。companyFullName和companyShortName則重復(fù)了,只需要留一個公司名稱,companyFullName依舊隱藏。

盡量不刪除數(shù)據(jù),而是隱藏,保證原始數(shù)據(jù)的完整,誰知道以后會不會用到呢?

接下來進行數(shù)據(jù)清洗和轉(zhuǎn)換。因為只是Excel級別的數(shù)據(jù)分析,不會有啞變量離散化標(biāo)準(zhǔn)化的操作。我簡單歸納一下。

數(shù)據(jù)有無缺失值

數(shù)據(jù)的缺失值很大程度上影響分析結(jié)果。引起缺失的原因很多,例如技術(shù)原因,爬蟲沒有完全抓去,例如本身的缺失,該崗位的HR沒有填寫。

如果某一字段缺失數(shù)據(jù)較多(超過50%),分析過程中要考慮是否刪除該字段,因為缺失過多就沒有業(yè)務(wù)意義了。

Excel中可以通過選取該列,在屏幕的右下角查看計數(shù),以此判別有無缺失。

companyLabelList、businessZones、positionLables都有缺失,但不多。不影響實際分析。

數(shù)據(jù)是否一致化

一致化指的是數(shù)據(jù)是否有統(tǒng)一的標(biāo)準(zhǔn)或命名。例如上海市數(shù)據(jù)分析有限公司和上海數(shù)據(jù)分析有限公司,差別就在一個市字,主觀上肯定會認(rèn)為是同一家公司,但是對機器和程序依舊會把它們認(rèn)成兩家。會影響計數(shù)、數(shù)據(jù)透視的結(jié)果。

我們看一下表格中的positionName

各類職位千奇百怪啊,什么品牌保護分析師實習(xí)生、足球分析師、商業(yè)數(shù)據(jù)分析、大數(shù)據(jù)業(yè)務(wù)分析師、數(shù)據(jù)合同管理助理。并不是純粹的數(shù)據(jù)分析崗位。

為什么呢?這是招聘網(wǎng)站的原因,有些職位明確為數(shù)據(jù)分析師,有些職位要求具備數(shù)據(jù)分析能力,但是又干其他活。招聘網(wǎng)站為了照顧這種需求,采用關(guān)聯(lián)法,只要和數(shù)據(jù)分析相關(guān)職位,都會在數(shù)據(jù)分析師的搜索結(jié)果中出現(xiàn)。我的爬蟲沒有過濾其他數(shù)據(jù),這就需要手動清洗。

這會不會影響我們的分析?當(dāng)然會。像大數(shù)據(jù)工程師是數(shù)據(jù)的另外發(fā)展方向,但不能歸納到數(shù)據(jù)分析崗位下,后續(xù)我們需要將數(shù)據(jù)分析強相關(guān)的職位挑選出來。

數(shù)據(jù)是否有臟數(shù)據(jù)

臟數(shù)據(jù)是分析過程中很討厭的環(huán)節(jié)。例如亂碼,錯位,重復(fù)值,未匹配數(shù)據(jù),加密數(shù)據(jù)等。能影響到分析的都算臟數(shù)據(jù),沒有一致化也可以算。

我們看表格中有沒有重復(fù)數(shù)據(jù)。

這里有一個快速竅門,使用Excel的刪除重復(fù)項功能,快速定位是否有重復(fù)數(shù)據(jù),還記得positionId么?因為它是唯一標(biāo)示,如果重復(fù)了,就說明有重復(fù)的職位數(shù)據(jù)??磥聿粍h除它是正確的。

對positionId列進行重復(fù)項刪除操作

有1845個重復(fù)值。數(shù)據(jù)重復(fù)了。這是我當(dāng)時爬取完數(shù)據(jù)時,將北京地區(qū)多爬取一次人為制作出的臟數(shù)據(jù)。接下來全選所有數(shù)據(jù),進行刪除重復(fù)項,保留5032行(含表頭字段)數(shù)據(jù)。

數(shù)據(jù)標(biāo)準(zhǔn)結(jié)構(gòu)

數(shù)據(jù)標(biāo)準(zhǔn)結(jié)構(gòu),就是將特殊結(jié)構(gòu)的數(shù)據(jù)進行轉(zhuǎn)換和規(guī)整。

表格中,companyLableList就是以數(shù)組形式保存(JSON中的數(shù)組)

看來福利倒是不錯,哈哈,不過這會影響我們的分析。businessZones、positionAdvantage和positionLables也是同樣問題,我們后續(xù)得將這類格式拆分開來。

薪水的話用了幾K表示,但這是文本,并不能直接用于計算。而且是一個范圍,后續(xù)得按照最高薪水和最低薪水拆成兩列。

OK,數(shù)據(jù)大概都了解了,那么下一步就是將數(shù)據(jù)洗干凈。

數(shù)據(jù)清洗

數(shù)據(jù)清洗可以新建Sheet,方便和原始數(shù)據(jù)區(qū)分開來。

先清洗薪水吧,大家肯定對錢感興趣。將salary拆成最高薪水和最低薪水有三種辦法。

一是直接分列,以”-“為拆分符,得到兩列數(shù)據(jù),然后利用替換功能刪除 k這個字符串。得到結(jié)果。

二是自動填充功能,填寫已填寫的內(nèi)容自動計算填充所有列。但我這個版本沒有,就不演示了。

三是利用文本查找的思想,重點講一下這個。先用 =FIND(“k”,O2,1)。查找第一個K(最低薪酬)出現(xiàn)的位置。

我們知道第一個k出現(xiàn)的位置,此時=LEFT(O2,FIND(“k”,O2,1))得到的結(jié)果就是 7K,要去除掉k,F(xiàn)IND(“k”,O2,1)再減去1即可。

最高薪水也是同樣的思路,但不能使用k,因為第二個薪水位置不固定。需要利用find查找”-“位置,然后截取 從”-” 到最后第二個位置的字符串。

=MID(O2,FIND(“-“,O2,1)+1,LEN(O2)-FIND(“-“,O2,1)-1)

因為薪水是一個范圍,我們不可能拿范圍計算平均工資。那怎么辦呢?我們只能取最高薪水和最低薪水的平均數(shù)作為該崗位薪資。這是數(shù)據(jù)來源的缺陷,因為我們并不能知道應(yīng)聘者實際能拿多少。這是薪水計算的誤差。

我們檢查一下有沒有錯誤,利用篩選功能快速定位。

居然有#VALUE!錯誤,看一下原因。

原來是大寫K,因為find對大小寫敏感,此時用search函數(shù),或者將K替換成k都能解決。

另外還有一個錯誤是很多HR將工資寫成5K以上,這樣就無法計算topSalar。為了計算方便,將topSalary等于bottomSalary,雖然也有誤差。

這就是我強調(diào)數(shù)據(jù)一致性的原因。

companyLabelList是公司標(biāo)簽,諸如技能培訓(xùn)啊、五險一金啊等等。直接用分列即可。大家需要注意,分列會覆蓋掉右列單元格,所以記得復(fù)制到最后一列再分。

符號用搜索替換法刪除即可。

positionLables、positionAdvantage、businessZones同樣也可以用分列法。如果觀察過數(shù)據(jù)會知道,companyLabelList公司標(biāo)簽都是固定的內(nèi)容,而其他三個不是。這些都是HR自己填寫,所以就會有各種亂七八糟不統(tǒng)一的描述。

這些內(nèi)容均是自定義,沒有特別大的分析價值。如果要分析,必須花費很長的時間在清洗過程。主要思路是把這些內(nèi)容統(tǒng)一成幾十個固定標(biāo)簽。在這里我將不浪費時間講解了,主要利用Python分詞和詞典進行快速清洗。

因為時間和性價比問題,positionAdvantage和businessZones我就不分列了。只清洗positionLables職位標(biāo)簽。某一個職位最多的標(biāo)簽有13個。

[‘實習(xí)生’, ‘主管’, ‘經(jīng)理’, ?‘顧問’, ‘銷售’, ‘客戶代表’, ‘分析師’, ‘職業(yè)培訓(xùn)’, ‘教育’, ‘培訓(xùn)’, ‘金融’, ‘證券’, ‘講師’]

這個職位叫金融證券分析師助理講師助理,我真不知道為什么實習(xí)生、主管、經(jīng)理這三個標(biāo)簽放在一起,我也是嗶了狗了。反正大家數(shù)據(jù)分析做久了,會遇到很多Magic Data。

接下來是positionName,上文已經(jīng)講過有各種亂七八糟或非數(shù)據(jù)分析師職位,所以我們需要排除掉明顯不是數(shù)據(jù)分析師的崗位。

單獨針對positionName用數(shù)據(jù)透視表。統(tǒng)計各名稱出現(xiàn)的次數(shù)。

出現(xiàn)次數(shù)為3次以下的職位,有約一千,都是各類特別稱謂,HR你們?yōu)槭裁匆@樣寫…要這樣寫…這樣寫。更改職位名稱似乎不現(xiàn)實,那就用關(guān)鍵詞查找的思路,找出包含有數(shù)據(jù)分析、分析師、數(shù)據(jù)運營等關(guān)鍵詞的崗位。雖然依舊會有金融分析師這類非純數(shù)據(jù)的崗位。

用find和數(shù)組函數(shù)結(jié)合,shift+ctrl+enter輸入。就得到了多條件查找后的結(jié)果。

=IF(COUNT(FIND({“數(shù)據(jù)分析”,”數(shù)據(jù)運營”,”分析師”},M33)),”1″,”0″)

單純的find 只會查找數(shù)據(jù)分析這個詞,必須嵌套count才會變成真數(shù)組。

1為包含,0不包含。將1過濾出來,這就是需要分析的最終數(shù)據(jù)。

當(dāng)然大家如果感興趣,也可以看一下大數(shù)據(jù)工程師,數(shù)據(jù)產(chǎn)品經(jīng)理這些崗位。

分析過程

分析過程有很多玩法。因為主要數(shù)據(jù)均是文本格式,所以偏向匯總統(tǒng)計的計算。如果數(shù)值型的數(shù)據(jù)比較多,就會涉及到統(tǒng)計、比例等概念。如果有時間類數(shù)據(jù),那么還會有趨勢、變化的概念。

整體分析使用數(shù)據(jù)透視表完成,先利用數(shù)據(jù)透視表獲得匯總型統(tǒng)計。

看來北京的數(shù)據(jù)分析崗位機會遠較其他城市多。1-3年和3-5年兩個時間段的缺口更大。應(yīng)屆畢業(yè)生似乎比1年一下經(jīng)驗的更吃香。爬取時間為11月,這時候校招陸續(xù)開始,大公司會

有線下校招,實際崗位應(yīng)該更多。小公司則傾向發(fā)布。這是招聘網(wǎng)站的限制。

看一下公司對數(shù)據(jù)分析師的缺口如何。

似乎是公司越大,需要的數(shù)據(jù)分析師越多。

但這樣的分析并不準(zhǔn)確。因為這只是一個匯總數(shù)據(jù),而不是比例數(shù)據(jù),我們需要計算的是不同類型企業(yè)人均招聘數(shù)。

如果北京的互聯(lián)網(wǎng)公司特別多,那么即使有1000多個崗位發(fā)布也不算缺口大,如果南京的互聯(lián)網(wǎng)公司少,即使只招聘30個,也是充滿需求的。

還有一種情況是企業(yè)剛好招聘滿數(shù)據(jù)分析師,就不發(fā)布崗位了,數(shù)據(jù)包含的只是正在招聘數(shù)據(jù)分析師的企業(yè),這些都是限制分析的因素。我們要明確。

有興趣大家可以深入研究。

看一下各城市招聘Top5公司。

北京的美團以78個數(shù)據(jù)分析職位招聘力壓群雄,甚至一定程度上拉高了北京的數(shù)據(jù)。而個推則在上海和杭州都發(fā)布了多個數(shù)據(jù)分析師職位,不知道是HR的意外,還是要大規(guī)模補充業(yè)務(wù)線(在我寫這篇文章的時候,約有一半職位已經(jīng)下線)。

比較奇怪的是阿里巴巴并沒有在杭州上榜,看來是該階段招聘需求不大,或者數(shù)據(jù)分析師有其他招聘渠道。

沒有上榜不代表不要數(shù)據(jù)分析師,但是上榜的肯定現(xiàn)階段對數(shù)據(jù)分析師有需求。

我們看一下數(shù)據(jù)分析師的薪水,可能是大家最感興趣的了。

我們看到南京、西安在應(yīng)屆生中數(shù)據(jù)最高,是因為招聘職位不多,因為單獨一兩個企業(yè)的高薪影響了平均數(shù),其余互聯(lián)網(wǎng)二線城市同理。當(dāng)工作年限達到3年以上,北上深杭的數(shù)據(jù)分析師薪資則明顯高于其他城市。

數(shù)據(jù)會有誤差性么?會的,因為存在薪資極值影響。而數(shù)據(jù)透視表沒有中位數(shù)選項。我們也可以單獨用分位數(shù)進行計算,降低誤差。

薪資可以用更細(xì)的維度計算,比如學(xué)歷、比如公司行業(yè)領(lǐng)域,是否博士生遠高于本科生,是否金融業(yè)薪資高于O2O。

另外數(shù)據(jù)分析師的薪資,可能包括獎金、年終獎、季度獎等隱形福利。部分企業(yè)會在positionAdvantage的內(nèi)容上說明,大家可以用篩選過濾出16薪這類關(guān)鍵詞。作為橫向?qū)Ρ取?/p>

我們看一下數(shù)據(jù)分析的職位標(biāo)簽,數(shù)據(jù)透視后匯總。

分析師、數(shù)據(jù)、數(shù)據(jù)分析是最多的標(biāo)簽。除此以外,需求分析,BI,數(shù)據(jù)挖掘也出現(xiàn)在前列??磥聿簧贁?shù)據(jù)分析師的要求掌握數(shù)據(jù)挖掘,將標(biāo)簽和薪水關(guān)聯(lián),是另外一種分析思路。職位標(biāo)簽并不是最優(yōu)的解法,了解一個職位最好的必然是職位描述。

分析過程不多做篇幅了,這次實戰(zhàn)比較簡單,后續(xù)文章會再講解, 主要使用數(shù)據(jù)透視表進行多維度分析,沒有其他復(fù)雜的技巧。下圖很直觀的展現(xiàn)了多維度的應(yīng)用。

我們的分析也屬于多維度,城市、工作年限、企業(yè)大小、企業(yè)領(lǐng)域等,利用不同維度形成一個直觀的二位表格,而維度則是通過早期的數(shù)據(jù)清洗統(tǒng)一化標(biāo)準(zhǔn)化。這是一種很常見的分析技巧。

后續(xù)的數(shù)據(jù)報告,涉及到可視化制作,因為字不如表、表不如圖,就放在第二周講解。

最后多強調(diào)幾下:

  1. 最好的分析,是拿數(shù)據(jù)分析師們的在職數(shù)據(jù),而不是企業(yè)招聘數(shù)據(jù)。
  2. 承認(rèn)招聘數(shù)據(jù)的非客觀性,招聘要求與對數(shù)據(jù)分析師的實際要求是有差異的。

如果這個數(shù)據(jù)大家看到其他好玩的,可以一并留言告訴我。

Excel的內(nèi)容差不多就結(jié)束了,之后會開始第二周數(shù)據(jù)可視化的講解。

相關(guān)閱讀

互聯(lián)網(wǎng)數(shù)據(jù)分析能力的養(yǎng)成,需一份七周的提綱

如何七周成為數(shù)據(jù)分析師01:常見的Excel函數(shù)全部涵蓋在這里了

如何七周成為數(shù)據(jù)分析師02:Excel技巧大揭秘

#專欄作家#

秦路,微信公眾號ID:tracykanc,人人都是產(chǎn)品經(jīng)理專欄作家。

本文由 @秦路?原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自PEXELS,基于CCO協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 文章里的圖片都看不到呢~~~~

    來自山東 回復(fù)
  2. 學(xué)不會。還是買本書好好看。

    回復(fù)
  3. 老師,可以分享一下數(shù)據(jù)嗎?749958200@qq.com 謝謝~

    來自上海 回復(fù)
  4. 老師,可以分享源數(shù)據(jù)嗎?997134105@qq.com,非常感謝~

    來自浙江 回復(fù)
  5. 老師,可以分享下源數(shù)據(jù)嗎?1534701682@qq.com

    來自四川 回復(fù)
    1. 拿到數(shù)據(jù)了 嗎

      來自四川 回復(fù)
    2. 請問能發(fā)一下源文件嗎?

      來自四川 回復(fù)
    3. 來自四川 回復(fù)
  6. 老師,可以分享源數(shù)據(jù)嗎

    來自北京 回復(fù)
    1. 拿到數(shù)據(jù)了嗎

      來自四川 回復(fù)
  7. 老師,能分享一下源數(shù)據(jù)嗎?

    來自重慶 回復(fù)
  8. 這個數(shù)據(jù) 老師還有嗎 可以讓我吸晴裝一份嗎

    回復(fù)
  9. 老師,能分享一下案例數(shù)據(jù)嗎?謝謝

    來自安徽 回復(fù)
  10. 請教~輸完公式后,只返回那一行的值啊,有沒有不用往下拖就能對整列做相同操作呢?

    來自安徽 回復(fù)
  11. 數(shù)據(jù)下載,https://pan.baidu.com/s/1pK895v9,提取密碼 6x2v,不謝

    回復(fù)
    1. 鏈接封了,能方便再發(fā)一次嗎?拜謝?。。?!

      來自安徽 回復(fù)
    2. 您好。您有數(shù)據(jù)了嗎,可以發(fā)我一份嗎,郵箱13020039292@qq.com

      來自北京 回復(fù)
    3. 同求數(shù)據(jù)下載鏈接,拜謝??!

      來自廣東 回復(fù)
    4. 您好,可以共享一下數(shù)據(jù)嗎?786954743@qq.com. 多謝!

      來自遼寧 回復(fù)
    5. 您好,可以分享一下數(shù)據(jù)嗎?1542037307@qq.com 謝謝

      來自重慶 回復(fù)
    6. 同求,郵箱812541076@qq.com

      來自上海 回復(fù)
    7. 大神,求分享數(shù)據(jù)~~~

      來自陜西 回復(fù)
    8. 可以分享下數(shù)據(jù)嗎,謝謝 594525322@qq.com

      來自江蘇 回復(fù)
    9. 你好,請問有源數(shù)據(jù)嘛,麻煩發(fā)一份,郵箱2428054774@qq.com

      來自浙江 回復(fù)
  12. “將topSalary等于bottomSalary”,如何操作的呢?

    來自北京 回復(fù)
    1. 有沒有解決了,我也有同樣的困擾

      來自浙江 回復(fù)
    2. 我的salary是P列,top和bottom分別是S列和R列。
      =IF(ISERROR(MID(P2,SEARCH(“-“,P2,1)+1,LEN(P2)-SEARCH(“-“,P2,1)-1)),R2,MID(P2,SEARCH(“-“,P2,1)+1,LEN(P2)-SEARCH(“-“,P2,1)-1))
      思路是判斷bottom是否有錯誤,正確則正常顯示,錯誤則顯示top的值。就是寫的太長了,不知道有啥簡便的方式?jīng)]。

      來自北京 回復(fù)
    3. ?? 主要是求top時函數(shù)長,方法我覺得可以

      來自浙江 回復(fù)
  13. 老師,能分享一下案例數(shù)據(jù)嗎?謝謝

    來自北京 回復(fù)
  14. 能不能把案例的源數(shù)據(jù)發(fā)給我,我想跟著做一遍!謝謝老師!

    來自福建 回復(fù)
  15. 希望大神可以開一個如何爬取數(shù)據(jù)的課 ??

    來自江蘇 回復(fù)
  16. 有源數(shù)據(jù)提供么?

    來自河北 回復(fù)
  17. 這份數(shù)據(jù)能下載嗎?自己不會爬數(shù)據(jù)啊。。

    來自浙江 回復(fù)
  18. 認(rèn)知數(shù)據(jù),努力學(xué)習(xí),了解概率學(xué),爭取趕上下一波人工智能大數(shù)據(jù)列車

    來自湖北 回復(fù)