爬了智聯告訴你數據分析師這個行業到底怎麼樣

爬了智聯告訴你數據分析師這個行業到底怎麼樣

來自專欄 零基礎python數據分析入門

項目背景

花了一段時間學習了python的numpy、pandas、matplotlib等包,正好這兩天把爬蟲的知識補了補,心想著來爬個數據照著做做看,於是順手爬了智聯來試試,權當複習複習python的這幾個數據分析包。

項目簡介

既然想要從事數據分析這個崗位,那自然首先需要對這個崗位有所了解。最直接、最真實的方式就是從企業那裡獲得需求訊息,這樣才最能夠指導自己的學習方向和簡歷準備。

本次項目即是要利用爬蟲爬取智聯招聘上數據分析這一崗位的信息,然後進行一些探索和分析,以數據分析來了解『數據分析』。

數據來源和數據集

本次分析所用數據來自於智聯招聘網站在全國範圍內數據分析師關鍵詞搜索的全部數據,具體爬蟲代碼我放在了Github中,有興趣的朋友也可以拿來跑一跑。

NingWang1994/NonName?

github.com圖標

1.環境:

我使用的環境Anaconda+pyCharm,python解釋器用的python3.6版本,2.7版本運行這個爬蟲可能會報錯,相應修改下就好了~實在不行的我也提供了一份爬取完成的txt文件,都在Github上呢 , 有興趣的同學可以直接下載一起試試看。

言歸正傳,我這次分析使用Anaconda自帶的Jupyter Notebook,誰讓Notebook的DataFrame那麼好看呢!!!

2.關於欄位:

由於python3.6解決了中文編碼的問題,所以這兒使用的欄位都是大家喜聞樂見的中文,不禁感嘆果然用最新的東西最好啦!對於2.7版本的同學們別忘記在python文件的開頭加上#coding=utf-8,對中文部分也需要使用u中文的格式,否則你將無情滴面對一堆的ascii碼

言歸正傳,這一次分析的內容欄位包括:

  • 職位月薪、工作地點、工作性質、工作經驗、最低學歷要求、招聘人數、職位類別、公司規模、公司性質、公司行業

至於職位描述及任職要求嘛 。。我秉承著能省就省的原則~ 其實主要還是這個東西它太麻煩了,爬下來也是一堆一堆的字元串,後期提取有用信息花費時間太長,這裡我就直接忽略了。

思路

接下來的部分我將按照以下幾個問題進行:

  1. 數據分析師崗位地域性分布
  2. 不同行業性質對數據分析師的需求情況
  3. 不同公司規模情況對於數據分析師的需求
  4. 不同維度下下數據分析師薪酬水平

初探數據

import numpy as np #這兒我順手引入一個,萬一用得著呢import pandas as pd #我們數據分析最核心的包from pandas import DataFrame #方便我們之後DataFrame的使用

好了,引入完這些我們直接導入數據看一看數據的基本信息吧~

data = pd.read_csv(zlzp.txt,sep=,,na_values=[保密])data.head(10)

data.info()

嗯,總體來說數據質量還是不錯滴,但還是有一些缺失值,比如最低學歷只有5359條信息,公司規模、公司性質、公司行業很多寫的是保密 ,小小吐槽一下,公司招人為什麼公司性質和行業都要保密的!因為在爬的時候就發現了這個問題,所以在導入的時候我把保密設置成為了缺失值~

數據的預處理

看了那麼多的視頻和書籍,大家都說做一個項目,80%的時間用在了數據的預處理上,我想這完全是有道理的!!!我們的數據預處理實在太重要了!!!

具體再看看我們每個欄位吧,首先看看我們的月薪,因為它是一個區間,我們需要將它的最大值最小值分開來,分為兩個組;工作地點太多不一樣的寫法了,有的寫了區,有的沒寫區,用正則試試看;工作經驗、招聘人數和公司規模我們只保留數字,工作經驗不限的就設置為0;職位類別這一欄我們也用正則來提取我們需要的數據吧~

接下來我們具體看一下我們爬的東西是什麼吧 ~

data.職位類別.value_counts()

我靠,這一堆是什麼鬼東西???剛剛還在吹數據質量不錯呢,這麼快就打臉了???這智聯搜出來的東西也太不靠譜了吧 !!

好了,吐槽歸吐槽,處理我們還是要處理一下下這些亂七八糟的東西的,我們的思路是:這堆亂七八糟的東西我們不可能一個個用字典去處理它,那就粗略地把它們分為和數據沾邊的(就是職位裡帶數據兩個字的)和跟數據不沾邊的兩個部分就好了。

廢話不多說,直接上代碼

import re#引入正則表達式,這東西處理文本型數據可是神器阿!!!pattern = re.compile((.*數據.*))data = data[data[職位類別].map(lambda x : re.findall(pattern,x)).map(lambda x:bool(x))]

這裡用了我們的bool值索引和Series的map方法,成功提取出有用的數據~好了,看看我們提取完的數據長什麼樣子吧~

data.info()

data.職位類別.value_counts()

一下子數據少了幾千條 ,(lll¬ω¬) 這不相關的是真的多,不過大致上已經是我們想要的數據了~ 到這一步我們就可以用字典愉快地處理它們了~

#建立映射關係dict_posts = {臨床數據分析員:數據分析師, 銷售數據分析:數據分析師, 數據運營:數據分析師}#其他的我們就不要了,資料庫開發的同學做的畢竟不是同樣的工作內容了#那個數據通信工程師我沒聽說過,而且數據量小,就放棄他們了吧~data[職位類別]=data[職位類別].map(lambda x:dict_posts.get(x,x))data = data[data.職位類別==數據分析師]data.職位類別.value_counts()

之後我們處理一下重複值,由於我們爬的時候忘記了公司名稱,真的是不小心忘記了!!!這兒換個思路:要是公司的性質、規模、行業、招聘人數、工作地點、工作經驗、月薪都一樣的話!那基本上可以認定為一家公司的同一條招聘信息~

data=data.drop_duplicates([公司性質,公司規模,公司行業,工作性質,最低學歷, 招聘人數,工作地點,工作經驗,職位月薪],keep=first)#最後千萬不要忘記處理一下我們的index,因為切片的緣故index變得亂糟糟的了#不處理的話後面的很多操作一不注意就出現一萬個Nonedata.reset_index(inplace=True,drop=True) #處理我們亂糟糟的index~

value_counts()以後我們發現刪除了150條左右的重複數據

OK,剩下的數據就是我們要的數據分析師的數據了~

薪資這個欄位我們將他處理為最低工資和最高工資,廢話不多說直接上代碼:

#定義一個函數,將最低工資和最高工資分離出來def split_salary(obj): try: low_list=[] high_list=[] for a_list in obj: for a_tuple in a_list: if a_tuple: a,b = a_tuple low_list.append(a) high_list.append(b) else: low_list.append(0) high_list.append(0) return low_list,high_list except Exception: print(出錯啦)#用正則和上面自定義的函數處理一下下~pattern = re.compile((.*?)-(d+).*?)salary_dict = {面議:0-0}data[職位月薪]=data.職位月薪.map(lambda x:salary_dict.get(x,x)).map( lambda x:re.findall(pattern,x))a,b = split_salary(data.職位月薪)df = DataFrame({最低工資:a,最高工資:b})df.head(10)

OK,沒問題,剩下的就是把它和原來的數據集data拼接起來,然後刪掉那個已經被我們弄得亂七八糟的職位月薪欄位

#連接兩個表並刪除多餘欄位data=pd.concat([data,df],axis=1)data.drop([職位月薪,月薪],axis=1,inplace=True)#將工資轉化為整數格式data.最低工資 = data.最低工資.map(lambda x:int(x))data.最高工資 = data.最高工資.map(lambda x:int(x))#講我們剛剛設置的0轉化為平均數值(因為面議的不多,所以我們把那些面議的用平均水平代替一下~)mean_low_saraly = data.最低工資.mean() #最低工資平均值mean_high_saraly = data.最高工資.mean() #最高工資平均值#建立我們的映射關係,說白了就是字典dict~low_saraly_dict = {0:int(mean_low_saraly)} high_saraly_dict = {0:int(mean_high_saraly)}

#最後依舊是我們強大的map函數~

#插一句map這個類型函數真的真的很好用,大家不明白的可以看看知乎上大神們的回答,同類函數還有apply和applymap

data.最低工資 = data.最低工資.map(lambda x:low_saraly_dict.get(x,x))data.最高工資 = data.最高工資.map(lambda x:high_saraly_dict.get(x,x))#當然我們順便也來一個工資的平均值吧~data[平均工資] = (data.最高工資-data.最低工資)/2data.head(10)

OK,效果不錯

其餘的欄位同樣按照上述思路處理,廢話不多說,直接上我們的代碼:

工作地點

#工作地點的處理,由於沒有缺失值,所以直接使用我們強大的正則表達式pattern = re.compile((w+)-*(.*?)) #定義正則規則#map函數幫我們搞定它data[工作地點]=data.工作地點.map(lambda x:re.search(pattern,x).groups()[0])

先別著急,工作地點這個屬性我們直接查看一下value_counts()就會發現,這個屬性的跨度非常巨大,最多的北京高達500+,最小的才1個崗位,如果我們直接畫圖的話那麼那些1+的崗位幾乎看不到,這兒把小於10的崗位的城市都統一划分到其他這一類中去。

#先弄個字典出來city_dict=dict(data.工作地點.value_counts()[data.工作地點.value_counts()<10])#根據這個字典我們自定義一個轉化函數def transform(a_dict): try: for key in a_dict.keys(): if a_dict[key]: a_dict[key]=其他 return a_dict except Exception: passcity_dict=transform(city_dict)#處理我們的地點信息

處理我們的工作經驗,想法是把它分散為一個個面元,到時候再看看曲線

#為了方便後續分散為面元畫圖先賦予一個平均值並且建立映射關係exp_dict = { 1-3年:1.5, 3-5年:4, 5-10年:7.5, 1年以下:0.5, 無經驗:0, 不限:2.55}exp_dict2 = { 不限:1-3年, 無經驗:1年以下}

對了,特別說明下不限這個屬性,不限這個屬性真的很難處理,一般看到不限的時候點進去都有工作經驗要求

根據那麼久看招聘的經驗,一般寫不限的都要1-2年工作經驗,這兒用加權平均代替一下下~

data[平均工作經驗]=data.工作經驗.map(lambda x:exp_dict.get(x,x))data.工作經驗=data.工作經驗.map(lambda x:exp_dict2.get(x,x))

最低學歷

#對於學歷,我大致把它分為三檔:大專及以下,本科,碩士及以上(主要高中、博士什麼的太少了!!根本不能自己成為一組)edu_dict={ 碩士:碩士及以上, 博士:碩士及以上, 中專:大專及以下, 高中:大專及以下, 大專:大專及以下}data.最低學歷=data.最低學歷.map(lambda x:edu_dict.get(x,x))#對於招聘人數pnum_dict ={ 若干:3人}data.招聘人數=data.招聘人數.map(lambda x:pnum_dict.get(x,x)).map(lambda x:int(x[:-1]))

仔細看看我們的數據,發現有不少企業亂填寫招聘人數 (lll¬ω¬) 那個招聘999個數據分析師的出來,我們可以談一談~

data.drop(data[data.招聘人數 >= 20].index,0,inplace=True) #把招聘20人以上的都去除掉,數目不多data.reset_index(inplace=True,drop=True)#千萬別忘記進行刪除/索引操作後重置一下索引喲~

公司行業

對於公司行業這一塊,查看value_counts()後發現很多行業公司個數小於10,這兒我們把它變為其他這一類

data_dict=dict(data.公司行業.value_counts()[data.公司行業.value_counts()<=10])#大家沒忘記剛剛我們自己定義的transform函數吧,在這兒直接用它data_dict=transform(data_dict)data.公司行業=data.公司行業.map(lambda x:data_dict.get(x,x))#因為這樣處理完畢以後公司行業/規模/性質剩下的缺失值不多,所以最後我們用眾數來補充一下缺失值na_dict={ 公司規模:100-499人, 公司行業:互聯網/電子商務, 公司性質:民營, 最低學歷本科}data.fillna(na_dict,inplace=True)

好了,到這兒我們的預處理差不多完成了,再讓我們看看處理完成後的數據:

最後的數據共1497條,平均每個公司招聘2.27個人,最低工資平均值為4274.90元,最高工資平均值為11941.87元。有了這些數據,我們就可以進行下一步的分析啦~

分析數據

%matplotlib inline #如果在notebook上直接做圖請加上這句話import matplotlib.pyplot as plt #一個基礎的畫圖包import seaborn as sns#讓畫圖界面變得好看的~~

關於詞雲這個包——woldcloud這個包安裝比較麻煩,我嘗試了使用pip/conda都沒成功,最好直接下載它的.whl文件進行安裝,然和再使用from wordcloud import WordCloud 來引入它,由於本人學的不多,並沒有對詞雲這個包有過多的了解,所以本文全部採用了seaborn包來進行可視化操作,有需要的同學可以參考詞雲和seaborn的官方文檔,裡面有非常詳細的介紹。

導入了這些畫圖的包以後,我們可以按照直接說過的思路一步步分析了。

1.數據分析師崗位需求的地域性分布

我們先用groupby函數聚合一下,看看這個工作崗位分布是怎麼樣的

count_by_city=data.groupby([工作地點]).size().sort_values(ascending=False)count_by_city

其實你用value_counts()也可以做到同樣的,這兒為了複習groupby函數所以使用它

好了,其實數字上也都能看出來了,為了更加直觀體現出來,我們畫個圖看看

ps:這兒很多同學的seaborn顯示中文會出現亂碼,記得照著設置下seaborn的字體格式~

至於matplotlib的字體格式修改參考以下代碼

import numpy as npimport matplotlib as mpl mpl.rcParams[font.family] = sans-serif mpl.rcParams[font.sans-serif] = NSimSun,Times New Roman#中文除外的設置成New Roman,中文設置成宋體

為了方便我是直接修改了matplotlib的源文件,這兒就不敘述了

count_by_city=data.groupby([工作地點]).sum().sort_values([招聘人數],ascending=False)fig,ax=plt.subplots(figsize=(50,35))fig.set(alpha=0.2)sns.set(color_codes=True)sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})g=sns.barplot(x=count_by_city.index,y=招聘人數,data=count_by_city,palette="Blues_r", order=count_by_city.index)ax.set_title(u不同城市對數據分析師的需求量,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(崗位數,fontsize=35)ax.set_xlabel(工作城市,fontsize=35)plt.show()

很明顯嘛!我們帝都的需求遠遠大於了其他的城市,甚至高於第二名魔n倍,幾乎佔了全國需求量的90%!總體來看,北京、上海、鄭州、西安、深圳這幾個城市需求量的是十分巨大的,廣州深圳這兩個一線城市排名那麼後面也是讓我有些驚訝,可能在3月份春招的時候會有所變化吧~有興趣的小夥伴們可以往以上這幾個城市投一投~

2.不同行業性質對數據分析師的需求情況

這段代碼跟上面沒多大區別,就不多敘述了

count_by_hy=data.groupby([公司行業]).sum().sort_values([招聘人數],ascending=False)fig,ax=plt.subplots(figsize=(50,35))fig.set(alpha=0.2)fig.autofmt_xdate()#自動調節x刻度值sns.set(color_codes=True)sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})g=sns.barplot(x=count_by_hy.index,y=招聘人數,data=count_by_hy,palette="Blues_r", order=count_by_hy.index)ax.set_title(u不同行業對數據分析師的需求量,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(崗位數,fontsize=35)ax.set_xlabel(行業,fontsize=35)plt.show()

結果很明顯,金融證券行業和互聯網行業對數據分析師的需求量最大,可能是由於這些行業可以較為便利地獲得大量的數據,更加希望從數據中發現一些價值吧,而傳統行業的需求量明顯比這些行業要來的少(估計大部分都被分到其他這一類里去了 (lll¬ω¬))。

3.不同公司規模情況對於數據分析師的需求

count_by_gm=data.groupby([公司規模]).sum().sort_values([招聘人數],ascending=False)fig,ax=plt.subplots(figsize=(50,35))fig.set(alpha=0.2)sns.set(color_codes=True)sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})sns.barplot(x=count_by_gm.index,y=招聘人數,data=count_by_gm,palette="Blues_r", order=count_by_gm.index)ax.set_title(u不同規模的公司對數據分析師的需求量,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(崗位數,fontsize=35)ax.set_xlabel(公司規模,fontsize=35)plt.show()

令人驚奇的是並不是規模越大的公司對數據分析師的需求量就越大,反而是100-499這樣的中型公司需求量最大,20人以下的初創公司可能還處於業務的擴展階段,並沒有太過於關心數據帶來的價值。

4.各個維度下數據分析師薪酬水平

終於到錢了~接下來給大家來一個的薪酬分布情況看看~

先來大致了解一下薪酬的分布情況吧~針對這個區間我們取平均工資反應薪酬水平

fig,axes=plt.subplots(2,1,figsize=(50,35))ax1=axes[0];ax2=axes[1]sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})#密度曲線kdesns.distplot(data[平均工資]/1000,hist=False, color=#0A0A0A,ax=axes[0],kde_kws={shade:True})ax1.set_title(薪資總體水平概率密度分布,fontsize=50)ax1.tick_params(labelsize=35)ax1.set_ylabel(概率密度,fontsize=35)ax1.set_xlabel(工資/K,fontsize=35)ax1.set_xlim(0,50)ax1.set_xticks(np.linspace(0, 50, 11)) #設置坐標軸顯示#histsns.distplot(data[平均工資]/1000,kde=False,bins=35, ax=axes[1],hist_kws={"alpha": 0.75,"color": "b"})ax2.set_title(薪資總體水平柱形圖,fontsize=50)ax2.tick_params(labelsize=35)ax2.set_ylabel(數量,fontsize=35)ax2.set_xlabel(工資/K,fontsize=35)ax2.set_xlim(0,50)ax2.set_xticks(np.linspace(0, 50, 11))plt.show()

總體來說,數據分析師的薪酬呈現右偏分布,大多數人崗位在5-15K的薪酬水平,但也有少數崗位超過20K,甚至到達40K的薪資,不得不說讓人充滿了期待(眼睛放光(p≧w≦q)),由於是取了平均水平作為分布依據,真實情況可能還會更好(大家可以試試看取分位數作為分布依據)

再看一看不同城市薪酬整體的情況~

data_low_mean=data.groupby(工作地點)[最低工資].mean().sort_values(ascending=False)fig,ax=plt.subplots(figsize=(50,35))fig.set(alpha=0.2)sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})sns.set_color_codes("pastel") #設置顏色較淺sns.barplot(x=工作地點,y=最高工資,data=data,color="b", order=data_low_mean.index,label=最高工資)sns.set_color_codes("muted") #設置顏色較深sns.barplot(x=工作地點,y=最低工資,data=data,color=b, order=data_low_mean.index,label=最低工資)ax.set_title(不同城市薪資總體水平,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(工資水平,fontsize=35)ax.set_xlabel(工作地點,fontsize=35)plt.legend(loc=0,fontsize=50)plt.show()

大家忽略這一條條黑線~ 這些黑線是薪酬平均值的置信區間, 總體來看北上廣深杭的工資無論最低水平還是最高水平都要比其他城市要來得高,而且上述分析也表明北上廣深杭的就業機會相比其他城市來的更加多,有興趣的小夥伴們可以就近多往這幾個城市投一投自己的簡歷~

這之後我們看一看工作經驗對薪資的影響情況:

首先我們先看看企業對工作經驗的需求吧

bins = [0,1,3,5,11]fig,ax=plt.subplots(figsize=(50,35))sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})sns.despine(left=True)sns.distplot(data[平均工作經驗],bins=bins,kde=False, color=#7A378B)ax.set_title(工作經驗分布圖,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(數量,fontsize=35)ax.set_xlabel(工資/K,fontsize=35)ax.set_xticks(bins)ax.set_xlim(0,7)ax.set_yticks(np.linspace(0, 1200, 13))plt.show()

從上面的結果中看,如果我們將大於5年的歸結於一類,畫出數據概率密度曲線,我們會發現數據整體呈現了正態分布。企業招聘數據分析師對經驗的要求主要集中在需要有1-3年相關工作經驗,對工作3-5年的資深分析師也有一定的需求,但是對於少於1年工作經驗的分析師需求比較少,大於5年的數據分析師需求量更是鳳毛麟角。對於造成這個的原因可能是由於以下方面:

  • 數據行業是一個比較年輕的行業,從業者大多數工齡不超過5年,5年以上分析師鳳毛麟角
  • 企業更注重性價比,1-3年的熟手已經可以很好地進行分析工作了,5年以上分析師給企業的用人成本太高

接下來回歸正題,我們看看不同工作年限對工資會有何影響吧:(這塊我們使用箱線圖,不再用之前的堆積條形圖了,權當複習下箱線圖的畫法)

fig,ax=plt.subplots(figsize=(50,35))sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})sns.boxplot(x="工作經驗", y="平均工資", data=data, palette="PRGn", order=[1年以下,1-3年,3-5年,5-10年],linewidth=10)ax.set_title(不同經驗薪酬分布,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(薪酬,fontsize=35)ax.set_xlabel(工作年限/年,fontsize=35)plt.show()

圖中我們可以看出來,隨著經驗的積累,分析師的工資在不斷增加呀!大家可以期待一下下。

我們上面分析了不同城市、不同經驗的分析師薪酬待遇是不一樣的,那麼對於不同學歷級、不同行業的薪酬又會怎麼樣呢?我們接下來就把這兩個維度綜合起來看看

直接上我們的代碼:

df = data.pivot_table(index=公司行業,columns=最低學歷,values=平均工資,fill_value=0)df.sort_index(by=[大專及以下,不限,本科,碩士及以上],inplace=True)df=df.reindex(index=count_by_hy.index)fig,ax=plt.subplots(figsize=(50,35))sns.set_style("darkgrid",{font.sans-serif:[simhei,Arial]})sns.heatmap(df, annot=True, fmt="f", linewidths=.5, ax=ax)ax.set_title(不同行業不同學歷的薪酬分布情況,fontsize=50)ax.tick_params(labelsize=35)ax.set_ylabel(城市,fontsize=35)ax.set_xlabel(工作年限/年,fontsize=35)plt.show()

從圖中我們可以很明顯可以看出來:

  1. 總體而言越靠近右上角越接近暖色調,同時這也代表工資越高,越接近左下角顏色越接近冷色調,這也表示工資越低(忽略黑色,黑色部分表示沒有招聘信息),也出現了一些異常點,比如學歷位於不限、行業位於通信/電信運營、增值服務這塊出現了最高的薪酬,這與我們沒有處理不限這個欄位有很直接的關係,可能這個不限在實際生活中代表的是博士以上學位?這有待進一步驗證
  2. 暫時撇開不限這個欄位,我們發現隨著學歷的提升,無論在哪一個行業都有著明顯的工資提升,說明了學歷對於你能拿到多少工資還是起著相當關鍵的作用的。
  3. 對於本科以上學歷而言,優先選擇基金、互聯網等分析師需求比較大的行業薪酬會有些許的的提升,但幅度並不是特別的明顯

對於其他維度對薪酬的影響,大家有興趣的可以自行分析一下,分析的方式大同小異,這兒就不再過多描述了。

結論

通過上面的分析,我們可以得出以下結論:

  1. 數據分析工作有很大一部分集中在北京、上海、鄭州、西安、深圳這幾個城市,特別是我們的帝都幾乎佔了全國同時期需求量的90%。
  2. 金融證券行業和互聯網行業對數據分析師的需求量巨大,可以想像這可能是由於這些行業可以較為便利地獲得大量的數據,由此更加希望能夠從數據中發現一些價值,而傳統行業的需求量明顯比這些行業要來的少。
  3. 100-499這樣的中型公司需求量最大,其次是500-999人這樣的公司,20人以下的初創公司由於還處於業務的擴展階段,並不會太過於關心數據帶來的價值。
  4. 企業對分析師的需求總體服從了正態分布。其中企業對於1-3年分析經驗的熟手需求量最大,1年以下經驗的分析師需求很小,而對於3-5年的資深分析師也有著一定的需求,但是對於5年以上經驗的分析師需求量並沒有想像中那麼巨大
  5. 總體而言,數據分析師的薪酬呈現明顯的右偏分布,大多數人崗位在5-15K的薪酬水平,但也有少數崗位超過20K,甚至到達40K的薪資,不得不說讓人充滿了期待。
  6. 對於薪酬而言,首先北上廣深杭的工資無論最低水平還是最高水平都要比其他城市要來得高,而且工作機會更多,去這些城市會是一個不錯的選擇;其次隨著經驗的積累,分析師的工資也在不斷增加;最後我們發現需求量大的企業給的工資並不一定高,學歷卻是一個真正影響薪酬的因素,但需求量大的企業提供了更多的工作機會及發展空間,對於這而言,選擇這些企業將會是一個明智的選擇。
  7. 結合4和6的觀點,我們可以猜測造成5年以上經驗分析師需求量不大的原因可能是:
  • 企業更注重性價比,1-3年的熟手已經可以很好地進行分析工作了,5年以上分析師給企業的性價比並太高。

思考與總結

本文分析用的數據全部來自於智聯招聘2月份的招聘信息。由於時間所限並且本人文字表達能力不強,本次分析做得十分簡陋,語言組織並不是非常流暢。

對於的數據分析方面我也忽略了許多的維度,與此同時我也默認了這些維度之間是相互獨立互不影響的,可能實際情況並不是如此。

關於對於數據的預處理方面,由於本次分析的主要目的還是在於複習python中pandas數據分析包的用法,所以我只進行了最簡單的數據清洗操作,如果對其進行深入的挖掘結合演算法處理這些信息,我想應該會更加有趣,但時間有限,這兒就不展開討論這些了。

以上這些算是給這段時間的一個總結吧~ 也希望給大家一點參考的思路。


推薦閱讀:

吳海山:跨界的數據洞察者 |「35 歲以下科技創新 35 人」中國榜單專欄
今日數據行業日報(2016.12.12)
『2016年中國家庭人均財富為169077元 同比增長17.25%』今日數據行業日報(2017.5.25)
今日數據行業日報(2017.7.11)
今日數據行業日報(2016.08.24)

TAG:數據分析 | 數據分析師 | 數據 |