做者/ 魏凱html
Udacity 「數據分析師」納米學位項目學員python
從去年7月份開始學習 Udacity 的「數據分析師」納米學位課程,到如今也算學了很多內容,接下來打算慢慢開始找工做了。既然想要從事數據分析師這個崗位,那天然首先須要對這個崗位有所瞭解。最直接、最真實的方式就是從企業那裏得到需求訊息,這樣才最可以指導本身的學習方向和簡歷準備。本次項目便是要利用爬蟲爬取拉勾網上數據分析這一崗位的信息,而後進行一些探索和分析,以數據分析來了解‘數據分析’。shell
本項目所使用的數據集所有來自拉勾網,是經過集搜客這一網絡爬蟲工具來爬取的。集搜客是一款簡潔易用且功能強大的網絡爬蟲產品,經過鼠標點選和簡單的命令操做便可實現爬蟲的定製和運行,這裏也推薦一下。之因此選擇拉勾網做爲本項目的數據源,主要是由於相對於其餘招聘網站,拉鉤網上的崗位信息很是完整、整潔,極少存在信息的缺漏。而且幾乎全部展示出來的信息都是很是規範化的,極大的減小了前期數據清理和數據整理的工做量。(筆者畢竟是工做之餘完成,時間有限,能省則省)本次爬取信息的時候,主要得到了如下信息:編程
內容 | 字段 |
---|---|
崗位名稱 | title |
月薪 | month_salary |
公司名稱 | company |
所屬行業 | industry |
公司規模 | scale |
融資階段 | phase |
投資人 | investors |
所在城市 | city |
經驗要求 | experience |
學歷要求 | qualification |
全職/兼職 | full_or_parttime |
職位描述及任職要求 | description |
主要是但願經過實際的數據來解答針對數據分析崗位的一些疑惑,Udacity數據分析師課程的童鞋一些參考性的意見。具體來講,主要針對如下幾個問題:
bash
- 數據分析師崗位需求的地域性分佈;網絡
- 整個羣體中薪酬分佈的狀況;框架
- 不一樣城市數據分析師的薪酬狀況是怎樣的;python2.7
- 該崗位對於工做經驗的要求是怎樣的;編程語言
- 根據工做經驗的不一樣,薪酬是怎樣變化的;分佈式
- 從用人單位的角度看,數據分析師應當具有哪些技能?
- 掌握不一樣技能是否會對薪酬有影響?影響是怎樣的?
本項目主要分爲兩大部分,第一部分是數據爬取,採用的是集搜客網絡爬蟲工具。第二部分是數據分析,以python編程語言爲基礎。數據分析部分主要使用pandas做爲數據整理和統計分析的工具,matplotlib用於圖形的可視化,seaborn庫包用於圖形美化。在進行技能需求分析的時候,使用了jieba做爲分詞工具包,並使用wordcloud包製做詞雲。
* 點擊圖片縮略圖可放大,下同。
能夠看到,通過初步清理後,數據集中有效變量爲13個,數據記錄575條。除了投資人這一項以外,其餘各字段的數據完整度很是好,幾乎沒有缺失值。這對於後面的分析來講是個大大的好消息。
<matplotlib.text.Text at 0x1102e1f90>複製代碼
在拉勾網上,全國有29個城市的企業郵數據分析師的人才需求,其中將近一半需求產生在北京市,需求量全國第一。排在前5的分別是:北京、上海、深圳、杭州、廣州。數據分析這一職業大量集中在北上廣深四大一線城市,以及杭州這個互聯網和電子商務企業的彙集地。北京市巨大的需求比重令我稍感意外,不過,考慮到拉勾網是一個偏重互聯網相關行業的招聘平臺,而我國大量互聯網企業在北京彙集,這個結果倒也算合理。之後有時間,能夠對全國互聯網行業分佈特色作個分析。
總而言之,能夠得出一個清晰的結論:數據分析這一崗位,有大量的工做機會集中在北上廣深以及杭州,期待往這個方向發展的同窗仍是要到這些城市去多多嘗試。固然,從另外一個方面說,這些城市也都集中了大量的各行業人才,競爭壓力想必也是很大的。
/Users/carrey/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:16: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy複製代碼
([<matplotlib.axis.XTick at 0x11ccaa290>,
<matplotlib.axis.XTick at 0x11d478210>,
<matplotlib.axis.XTick at 0x11d5652d0>,
<matplotlib.axis.XTick at 0x11d602f10>,
<matplotlib.axis.XTick at 0x11d6116d0>,
<matplotlib.axis.XTick at 0x11d528290>,
<matplotlib.axis.XTick at 0x126eb4c10>,
<matplotlib.axis.XTick at 0x11d441e90>,
<matplotlib.axis.XTick at 0x11d611bd0>,
<matplotlib.axis.XTick at 0x11d618390>,
<matplotlib.axis.XTick at 0x11d618b10>,
<matplotlib.axis.XTick at 0x11d6242d0>,
<matplotlib.axis.XTick at 0x11d624a50>,
<matplotlib.axis.XTick at 0x11d62d210>,
<matplotlib.axis.XTick at 0x11d62d990>,
<matplotlib.axis.XTick at 0x11d637150>,
<matplotlib.axis.XTick at 0x11d6378d0>,
<matplotlib.axis.XTick at 0x11d642090>,
<matplotlib.axis.XTick at 0x11d642810>],
<a list of 19 Text xticklabel objects>)複製代碼
如同大多數其餘工做同樣,數據分析師的薪酬也是一個右偏分佈。大多數人的收入集中在5k-20k每個月,只有少數人可以得到更高的薪酬,但有極少數人薪酬極高,讓人充滿期待。須要說明的是,拉勾網上的薪酬值是一個區間值,而且相互之間互有重疊,爲了便於分析,我取區間的中值做爲表明值進行的分析。所以,實際的薪酬分佈狀況可能會比圖中的狀況更好一些。老是有人可以拿到薪酬的上限。綜合來看,數據分析師的薪酬收入總體仍是可觀的,從這方面說,選擇這個職業仍是不錯的。
<matplotlib.text.Text at 0x115796650>
忽略掉那些人才需求量比較小的城市,我重點關注排名前六的城市。從圖上看,這六大城市的薪酬分佈狀況整體來講都比較集中,這和咱們前面看到的全國的薪酬整體狀況分佈是一致的。深圳市薪酬分佈中位數大約在15k,居全國首位。其次是北京,約12.5k,以後是上海和杭州。深圳確實是個創造奇蹟的城市,在這裏也給了我一個小小的驚喜。從待趕上看,數據分析師留在深圳發展是個不錯的選擇。
/Users/carrey/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:7: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
/Users/carrey/anaconda/lib/python2.7/site-packages/pandas/core/indexing.py:132: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self._setitem_with_indexer(indexer, value)
/Users/carrey/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:13: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
/Users/carrey/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:25: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)複製代碼
<matplotlib.text.Text at 0x110577dd0>
不出所料的,工做經驗的需求分佈近似於正態分佈。工做1-3年經驗的熟手需求量最大,其次是3-5年工做經驗的資深分析師。工做經驗不足1年的新人,市場需求量比較少。另外,工做經驗要5-10年的需求量很是稀少,而10年以上的更是百裏挑一。
從這個分佈咱們大體能夠猜想出:
數據分析是個年輕的職業方向,大量的工做經驗需求集中在1-3年;對於數據分析師來講,5年是個瓶頸期,若是在5年以內沒有轉型或者質的提高,大概之後的競爭壓力會比較大。
<matplotlib.text.Text at 0x11cc58f50>
毫無疑問的,隨着經驗的提高,數據分析師的薪酬也在不斷提升。另外,從現有數據來看,數據分析師彷佛是個常青的職業方向,在10年內大概不會由於年齡的增加致使收入降低。
Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/p7/6s6n_sw53dq_w9j52wlzyl800000gn/T/jieba.cache
Loading model cost 0.417 seconds.
Prefix dict has been built succesfully.
/Users/carrey/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:7: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy複製代碼
詞雲顯示出的狀況,有點超出了個人預料。對於數據分析師這一崗位,企業需求頻率最高的技能並非Python語言和R語言等現在很是時髦的數據分析語言,而是傳統的結構化查詢語言SQL和表格神器Excel。這一點須要各位小夥伴注意,要想從事數據分析師崗位,SQL和Excel看起來是必備技能。 從詞雲上看出,數據分析師技能需求頻率排在前列的有:SQL,Excel, SAS,SPSS, Python, Hadoop和MySQL等。另外,Java, PPT, BI軟件等屬於第二梯隊。
/Users/carrey/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:13: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy複製代碼
<matplotlib.text.Text at 0x11f59b890>
我對需求頻率最高的前15個技能進行統計計算,得出每個技能對應的平均薪酬水平,如上圖。點的大小表明該技能需求量的多少。
在前15項技能中,shell,Hive, Spark這三者的平均薪酬水平最高,而且相對其餘技能來講有比較大的差別。對數據分析師工做有所瞭解的人應該都知道,這三個工具中,Hive和Spark都是應用於分佈式數據處理,而shell腳本則是Linux系統下工做的必須技能。這三者共同指向了一個方向,那就是海量數據的分佈式處理!
因此,想要拿高薪的小夥伴注意了,海量數據處理、分佈式處理框架是走向高薪的正確方向。 另外值得注意的是,在數據分析領域,Python語言的平均薪酬水平要高於目前如日中天的Java語言。而SQL語言和傳統的SAS,SPSS兩大數據分析軟件,則可以讓你在保證中等收入的條件下,可以適應更多企業的要求,也就意味着更多的工做機會。
經過上面的分析,咱們能夠獲得的結論有這些: 數據分析這一崗位,有大量的工做機會集中在北上廣深以及杭州。 大多數據分析師的收入集中在5k-20k每個月,只有少數人可以得到更高的薪酬,但有極少數人薪酬極高,讓人充滿期待。
從待趕上看,數據分析師留在深圳發展是個不錯的選擇,其次是北京、上海。 數據分析是個年輕的職業方向,大量的工做經驗需求集中在1-3年。
對於數據分析師來講,5年彷佛是個瓶頸期,若是在5年以內沒有轉型或者質的提高,大概之後的競爭壓力會比較大。 隨着經驗的提高,數據分析師的薪酬也在不斷提升,10年以上工做經驗的人,能得到至關豐厚的薪酬。
數據分析師需求頻率排在前列的技能有:SQL,Excel, SAS,SPSS, Python, Hadoop和MySQL等,其中SQL和Excel簡直能夠說是必備技能。 海量數據、分佈式處理框架是走向高薪的正確方向。 SQL語言和傳統的SAS,SPSS兩大數據分析軟件,可以讓你在保證中等收入的條件下,可以適應更多企業的要求,也就意味着更多的工做機會。
對於數據分析師技能的分析是比較簡陋的,在本次分析過程當中,僅針對工具型的技能進行了分析。但其實,數據分析師所須要具有的素質遠不止這些,還須要有紮實的數學、統計學基礎,良好的數據敏感度,開拓但嚴謹的思惟等。若是要對這些內容進行深刻挖掘的話,應該會更加有趣。不過,要進行這項內容的話,須要掌握大量中文分詞、關鍵字提取等方面的知識和技能,難度也會更高。時間所限,在這裏再也不進一步展開了,但願之後有時間再作一個專項分析吧。 讓人忍不住吐槽的是,Python2.X環境對中文編碼的支持着實不夠好,在處理數據的時候消耗了大量的時間和精力,也犯了很多錯,走了不少彎路。之後這一塊的內容要找時間專門攻堅一下,也能夠考慮換到python3平臺去。
特別說明:本次數據源徹底來自拉勾網,但拉勾網自己是專一於互聯網相關行業的招聘平臺,因此本次分析出的結論更加適用於互聯網行業的相關企業,對於其餘行業的企業,未必合適。