如何七周成為數(shù)據(jù)分析師03:手把手教你Excel實戰(zhàn)
本文是?《如何七周成為數(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)幾下:
- 最好的分析,是拿數(shù)據(jù)分析師們的在職數(shù)據(jù),而不是企業(yè)招聘數(shù)據(jù)。
- 承認(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é)議
文章里的圖片都看不到呢~~~~
學(xué)不會。還是買本書好好看。
老師,可以分享一下數(shù)據(jù)嗎?749958200@qq.com 謝謝~
老師,可以分享源數(shù)據(jù)嗎?997134105@qq.com,非常感謝~
老師,可以分享下源數(shù)據(jù)嗎?1534701682@qq.com
拿到數(shù)據(jù)了 嗎
請問能發(fā)一下源文件嗎?
1174564764@qq.com
老師,可以分享源數(shù)據(jù)嗎
拿到數(shù)據(jù)了嗎
老師,能分享一下源數(shù)據(jù)嗎?
這個數(shù)據(jù) 老師還有嗎 可以讓我吸晴裝一份嗎
老師,能分享一下案例數(shù)據(jù)嗎?謝謝
請教~輸完公式后,只返回那一行的值啊,有沒有不用往下拖就能對整列做相同操作呢?
數(shù)據(jù)下載,https://pan.baidu.com/s/1pK895v9,提取密碼 6x2v,不謝
鏈接封了,能方便再發(fā)一次嗎?拜謝?。。?!
您好。您有數(shù)據(jù)了嗎,可以發(fā)我一份嗎,郵箱13020039292@qq.com
同求數(shù)據(jù)下載鏈接,拜謝??!
您好,可以共享一下數(shù)據(jù)嗎?786954743@qq.com. 多謝!
您好,可以分享一下數(shù)據(jù)嗎?1542037307@qq.com 謝謝
同求,郵箱812541076@qq.com
大神,求分享數(shù)據(jù)~~~
可以分享下數(shù)據(jù)嗎,謝謝 594525322@qq.com
你好,請問有源數(shù)據(jù)嘛,麻煩發(fā)一份,郵箱2428054774@qq.com
“將topSalary等于bottomSalary”,如何操作的呢?
有沒有解決了,我也有同樣的困擾
我的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)]。
?? 主要是求top時函數(shù)長,方法我覺得可以
老師,能分享一下案例數(shù)據(jù)嗎?謝謝
能不能把案例的源數(shù)據(jù)發(fā)給我,我想跟著做一遍!謝謝老師!
希望大神可以開一個如何爬取數(shù)據(jù)的課 ??
有源數(shù)據(jù)提供么?
這份數(shù)據(jù)能下載嗎?自己不會爬數(shù)據(jù)啊。。
認(rèn)知數(shù)據(jù),努力學(xué)習(xí),了解概率學(xué),爭取趕上下一波人工智能大數(shù)據(jù)列車