“數據分析崗位”招聘情況分析!| Excel版
為了練習Excel技能,以及實踐數據分析的流程。我用Web Scraper爬取了前程無憂4月16日全國發布的約2500條數據分析的職位信息,對數據分析崗位的招聘情況進行簡單的分析。整個過程分為五個步驟:明確目的,觀察數據,清洗數據,分析過程,得出結論。
01 明確目的
一切數據分析都是以業務為核心目的。本次項目的目的是通過數據分析崗位的招聘信息,包括地區分布、薪資水平、職位要求等,了解***數據分析崗位的情況。
02 觀察數據
- positionName:職位名稱
- link:職位詳情頁鏈接
- companyName:公司名稱
- city:工作城市
- salary:薪資
- Releasedate:發布日期
- companyType:公司類型
- Field:公司領域
- conmpanySize:公司規模
- JD:職位描述
- address:公司地址
- companyProfile:公司簡介
- info:招聘信息 (源于爬取的原因包含了公司地點、工作經驗、教育要求、招聘人數、發布時間,以|分隔)
- positionLables:職能類別
- keyword:職位關鍵字
- positionAdvantage:福利
首先看一下哪些字段數據可以去除。link為職位詳情頁鏈接,是爬取二級頁面需要的;Releasedate是職位發布時間,都為4月16日,這兩列可以刪除。
JD:職位描述、address:公司地址、companyProfile:公司簡介、keyword:職位關鍵字
雖然JD中的職位描述比info中信息更準確,但此次初級分析不對文本進行挖掘,所以先隱藏。盡量不刪除數據,而是隱藏,保證原始數據的完整性,以后可能會用到。
03 清洗數據
檢查數據缺失:Excel中可以通過選取該列,在屏幕的右下角查看計數,以此判別有無缺失數據,缺失值很大程度上影響分析結果。如果某一字段缺失數據較多(超過50%),分析過程中要考慮是否刪除該字段,因為缺失過多就沒有業務意義了。
salary、companyType、Field、conmpanySize都存在一小部分的缺失,不影響實際分析。
檢查數據是否有臟數據:臟數據包括亂碼,錯位,重復值,未匹配數據,加密數據等。能影響到分析的都算臟數據,沒有一致化也可以算。
數據標準結構:就是將特殊結構的數據進行轉換和規整。
我們首先把 city、salary、info拆開。
先將salary拆成***薪水和***薪水。比較麻煩的是薪水的表示方式有“XX元/天”,“X-X萬/年”,“X-X千/月”,“X-X萬/月”,還有空白項。
以天結算的可能是兼職,數量很少直接刪除。
空白項是因為崗位鏈接是公司主頁,而不是前程無憂的職位詳情頁,所以沒有爬取到。空白項大概占總量的2%,缺失值可以以業務知識或經驗推測填充、可以同一指標的計算結果(均值、中位數、眾數等)填充、也可以用回歸、貝葉斯形式化方法的基于推理的工具或決策樹歸納確定。這里簡單采用均值填充。
現在只剩“X-X萬/年”,“X-X千/月”,“X-X萬/月”三種類型,我打算統一以“X-X千/月”表示。
先用篩選中的“文本篩選”選出所有以“萬/年”表示薪資的項:
使用分列,以 ‘ - ’ 為分隔符號把salary分為兩列,再對***薪水列使用LEFT和FIND結合,截取單位前的數字:
換算一下單位,取小數點后一位,“X-X萬/年”就轉變為“X-X千/月”了。
然后篩選出“X-X萬/月”的項,同樣分列---> 截取***薪數字--->換算單位:
***篩選出“X-X千/月”的項,分列---> 截取***薪數字,但不用換算單位了。***得到的bottom和top列是公式,用復制-->粘貼為“值”,將公式轉化為數值。
出現了文本與數字交替的情況,
給每個單元格做一次數字運算,全部轉換為數字。***得到統一單位和格式的***薪水和***薪水。
我們簡單取***薪和***薪的平均數作為該崗位薪資。這是數據來源的缺陷,因為我們并不能知道應聘者實際能拿多少,這是薪水計算的誤差。
剛才說用均值填充缺失值,均值計算為9.3,對avgsalary為0的項進行填充。薪資項的處理就完成了。
然后是info項,info項的格式類似
以 ‘ | ’ 為分隔符分列,但有的單位在此處填寫了學歷要求,有的單位沒有,而是把學歷要求寫在JD中。導致education項中有一部分的數據錯位為招聘人數。
我把薪資小于5千/月的填充為大專要求,小于15千/月的填充為本科要求,大于15千/月的填充為碩士要求,不過這樣誤差應該會非常大!
然后是city列,用數據透視表統計各城市出現的次數,降序。將小于10個招聘崗位的城市統一歸入“其他城市”標簽。
數據是否一致化:一致化指的是數據是否有統一的標準或命名。我們看一下表格中的positionName,非常不一致。
我們需要將數據分析強相關的職位挑選出來,不然會影響分析結果。
用關鍵詞查找的思路,找出包含有數據分析、分析師、數據運營等關鍵詞的崗位,排除掉“品牌專員”、“人力資源總監”、“會計”等非純數據分析的崗位。用FIND函數和IF函數結合,1為包含,0不包含。將1過濾出來,這就是需要分析的最終數據。
以下是排除掉的崗位,約160個,占總崗位數的6.8%。
04 分析過程
因為主要數據均是文本格式,所以偏向匯總統計的計算。如果數值型的數據比較多,就會涉及到統計、比例等概念。如果有時間類數據,那么還會有趨勢、變化的概念。
整體分析使用數據透視表完成,先利用數據透視表獲得匯總型統計。
1)工作經驗vs崗位數量
廣州和上海的數據分析崗位遠多于其他城市。3年以下時間段的缺口更大。無工作經驗的應屆畢業生似乎比1年以下經驗的更吃香。但因為很多公司對學歷的要求寫在詳細的崗位描述中,而不是直接選擇的。所以很多顯示為無工作經驗的崗位,其實在崗位描述中是對工作年限進行了要求的,所以這里的統計很不準確。
2)企業規模vs崗位數量
看起來50-150人和150-500人的中小型公司需要的數據分析師更多。
但這樣的分析并不準確。因為這只是一個匯總數據,而不是比例數據。如果北京的互聯網公司特別多,那么即使有1000多個崗位發布也不算缺口大,如果南京的互聯網公司少,即使只招聘30個,也是充滿需求的。
還有一種情況是企業剛好招聘滿數據分析師,就不發布崗位了,數據包含的只是正在招聘數據分析師的企業,這些都是限制分析的因素。
3)工作經驗vs薪資水平
排除不準確的無工作經驗項,薪水確實是和工作年限成正比的。
北京、上海、深圳的平均薪資***,超過10千/月。崗位需求***的廣州平均薪資僅為8.57千/月。
崗位需求量很低的南昌和珠海,因為有個別高薪崗位,所以拉高了平均薪資。
4)使用公司領域標簽生成詞云圖,可以看到對數據分析崗位需求最多的是電子商務和互聯網類型的企業。
有各種各樣的傳統行業,如“服裝”“皮革”“紡織”等對數據分析師也有需求。
5)“五險一金”“獎金”“補貼”是公司提到最多的福利。
需要明確:
1、***的分析,是拿數據分析師們的在職數據,而不是企業招聘數據。
2、承認招聘數據的非客觀性,招聘要求與對數據分析師的實際要求是有差異的。