多圖預警 | 分析100萬份數據告訴你,數據分析師到底需要哪些技能?

2022-04-07   CDA數據分析師

原標題:多圖預警 | 分析100萬份數據告訴你,數據分析師到底需要哪些技能?

CDA數據分析師 出品

作者:Khuyen Tran

編譯:Mika

2012年,《哈佛商業評論》將數據科學家稱為是21世紀最性感的工作。自此,數據科學家這個詞變得越來越流行。

從上圖中可以看到在2016年到2021年,「數據科學」一詞在谷歌的搜索情況。從中可見,在過去幾年中,大家對數據科學的興趣穩步遞增。

數據科學家不僅收入豐厚,而且該職業能讓你利用各種技能,從現實世界的數據中提取有趣的見解,並通過你的分析產生影響。因此,它被稱為21世紀最性感的工作是有道理的。

然而,在找數據相關工作前,我們很有必要分析下數據相關從業者的特徵和背景。這能為你提供必要的信息,從而強化相關技能,在眾多求職者中脫穎而出。

接下來我們會分析以下問題:

  • 數據科學家都具備哪些技能?
  • 這些技能與機器學習工程師、數據分析師和數據工程師等其他職位的技能有何不同?
  • 最受歡迎的專業是什麼?
  • 成為數據科學家,需要碩士或博士學位嗎?
  • 數據科學領域的男女比例是多少?
  • 大多數數據科學工作在哪裡?
  • 不同數據相關工作的普及程度如何隨時間變化?
  • 數據科學家的技能如何隨時間變化?

獲取數據

在文本中,我們將使用來自世界各地的16萬多名數據科學家、57萬名數據分析師、10萬多名數據工程師以及1.9萬多名機器學習工程師的數據。

這些數據是從世界上最大的知識圖表Diffbot中提取的。

獲取本文數據:

https://github.com/khuyentran1401/dataset

01程式語言流行度排行榜

數據科學家、數據分析師、數據工程師和機器學習工程師的首要技能是什麼?

我們分析了這些數據從業者中前100項最受歡迎的技能。

importpandas aspd

skill_count = pd.read_csv(

"https://media.githubusercontent.com/media/khuyentran1401/dataset/master/data_science_market/all_skills.csv",

index_col= 0,

)

# Show the top 10 rows

skill_count.head( 10)

我們將使用這個數據集來分析不同程式語言在某個數據相關職位中的受歡迎程度。接著,將使用在Observable上創建的氣泡矩陣對數據集進行可視化。

註:Observable是一家數據可視化平台提供商,為開發人員、數據科學家等人群提供數據可視化平台。

氣泡矩陣使用大小和顏色來表示二維信息,其中行代表職位名稱,列代表語言,氣泡越大,說明該語言在某一職位類別中的使用頻率越高。

在創建氣泡大小時,我們將計算某種語言的頻率與所有語言、職位中最大頻率之間的比率。

languages = skill_count[

skill_count[ "skill"].isin(

[ "python", "r", "sql", "c", "c++", "matlab", "java", "java"]

)

]

languages[ "Ratio to All Skills"] = languages[ "count"].apply(

lambda c: c / max(skill_count[ "count"])

)

# View languages used by data analysts

languages[languages[ "Title"] == "Data Analyst"]

如果氣泡的出現次數超過一定數量,則氣泡將高亮顯示。我們可以使用滑塊選擇氣泡高亮顯示的閾值。例如,如果我們選擇閾值為10萬,則當計數超過10萬時氣泡會變成深紫色。

我們還可以按職位名稱對氣泡進行排序,從而找到每個職位最需要的技能。

根據這個圖,我們可以看到:

  • 數據分析師的前三項技能從高到低依次是SQL、Python和R
  • 數據工程師的前三項技能從高到低依次為SQL、Python和Java
  • 數據科學家的前三項技能從高到低依次是Python、R和SQL
  • 機器學習工程師的前三項技能依次是Python、Java和C++

02最熱門的專業是什麼

數據相關職位的最熱門專業是什麼?接下來我們看看不同職位人群的專業情況。

!wget 'majors_df.pkl''https://github.com/khuyentran1401/dataset/raw/master/data_science_market/majors_df.pkl'

import pickle

majors_df = pickle. load( open( "majors_df.pkl", "rb"))

majors_df[ "data scientist"]

讓我們將這個數據集可視化,首先創建一個函數來對對應職業的專業進行可視化。

importplotly.express aspx

defplot_majors(title: str, majors_df: dict):

majors = majors_df[title]

returnpx.bar(data_frame=majors, x= "name", y= "value")

The top majors of data scientists:

plot_majors( 'data scientist', majors_df)

對於數據科學家來說,需要一定的編程和數學知識,因此該職位人群專業分布中,排名前兩位的是計算機科學和數學。

數據工程師的專業分布:

plot_majors( 'data engineer', majors_df)

由於數據工程師的工作需要不同技術和程式語言的知識,因此可以看到,大多數數據工程師的專業是計算機科學和信息技術,而不是數學。

數據分析師的專業分布:

plot_majors( 'data analyst', majors_df)

數據分析師的前三大專業是工商管理、計算機科學和經濟學。這是有道理的,因為數據分析師的工作涉及到解釋數據。

機器學習工程師的專業分布:

plot_majors( 'machine learning engineer', majors_df)

可以看到,計算機科學專業的最多,其次是計算機工程和數據科學。

03學歷情況

許多數據相關職位的工作描述中都要求有碩士學位或博士學位,但實際上數據從業者們的學歷情況如何呢?

下面我們來分析看看:

degree_df = pd.read_csv(

"https://media.githubusercontent.com/media/khuyentran1401/dataset/master/data_science_market/degrees.csv"

)

degree_df.head(10)

我們可以看到學歷包括:

  • 高中
  • 副學士,類似國內的大專
  • 本科
  • 研究生
  • 博士
  • 資質證書

讓我們使用氣泡矩陣來進行數據可視化。

從圖中可以看出,在所有與數據相關的職位中,學歷占比最多是學士學位

這也很好理解,因為大多數與數據相關的工作至少需要學士學位,而那些擁有碩士學位或博士學位的人也有學士學位。

下面使用分組條形圖看看。

值得注意的是,在數據分析師中,擁有學士學位的幾乎是擁有碩士學位的兩倍

然而,在數據科學家中,擁有學士學位的與擁有碩士學位的數量大致相同這意味著相比數據分析師,數據科學家中選擇繼續攻讀深造的人群要更多。

04性別比例

那麼在從事數據相關職業的人群中,男女比例分布如何呢?

gender_df = pd.read_csv(

"https://media.githubusercontent.com/media/khuyentran1401/dataset/master/data_science_market/genders.csv"

)

gender_df.head(10)

接下來,我們用分組條形圖將數據可視化,其中紅色條形代表男性,紫色代表女性。

從圖中,我們可以看到。

  • 在所有與數據有關的工作中, 除了數據錄入員,其他職業男性人數都 多於女性。

  • 數據分析師和統計員等職位中,男性人數幾乎是女性人數的 兩倍

  • 數據科學家、數據工程師和機器學習工程師等角色中,男性人數是女性人數的 兩倍以上。

在所有與數據有關的工作中, 除了數據錄入員,其他職業男性人數都 多於女性。

數據分析師和統計員等職位中,男性人數幾乎是女性人數的 兩倍

數據科學家、數據工程師和機器學習工程師等角色中,男性人數是女性人數的 兩倍以上。

05哪裡的數據從業者最多

那麼放眼全球,各個國家的數據從業者分布如何呢?下面我們看到全球數據科學家人數TOP 25的國家。

首先,下載並加載顯示每個國家數據科學家數量的數據。

!wget 'countries.pkl''https://github.com/khuyentran1401/dataset/raw/master/data_science_market/countries.pkl'

countries = pickle.load( open( "countries.pkl", "rb"))

Next, we plot the top 25countries fordatascientists:

def plot_top_25_locations(title: str, locations: dict):

data= locations[title]

returnpx.bar(data_frame= data, x= "location", y= "count")

plot_top_25_locations( "data scientist", countries)

數據科學家數量最多的五個國家是:

  • 美國
  • 印度
  • 法國
  • 英國
  • 德國

接下來我們進一步看看,這些數據科學家都分布在哪些城市。我們將下載顯示每個城市的數據科學家數量的數據。

!wget 'cities.pkl''https://github.com/khuyentran1401/dataset/raw/master/data_science_market/cities.pkl'

cities = pickle. load( open( "cities.pkl", "rb"))

數據科學家數量排名前25位的城市:

從上圖中,我們可以看到數據科學家分布最多的五個城市是:

  • 舊金山(美國)
  • 班加羅爾(印度)
  • 倫敦(英國)
  • 巴黎(法國)
  • 紐約(美國)

那麼在美國哪些州的數據從業者最多呢?讓我們來看看。

state_jobs = pd.read_csv(

"https://media.githubusercontent.com/media/khuyentran1401/dataset/master/data_science_market/state_jobs.csv"

)

state_jobs.head(10)

接下來,我們將使用folium繪製數據,folium是一個用於創建地圖的Python庫。

state_geo = "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json"

m = folium.Map(location=[48, -102], zoom_start=3)

folium.Choropleth(

geo_data=state_geo,

name= "choropleth",

data=state_jobs,

columns=[ "state", "count"],

key_on= "feature.id",

fill_color= "YlGn",

fill_opacity=0.7,

line_opacity=0.2,

legend_name= "Number of Data Science Jobs",

).add_to(m)

folium.LayerControl.add_to(m)

m

從地圖上,我們可以看到,在美國數據科學家數量最多的州是加州。其次紐約、麻薩諸塞州和德克薩斯州分別排在第二到第四位。

06數據從業者都有哪些頭銜

與數據科學家這個角色相關的頭銜有很多,比如高級數據科學家、初級數據科學家、數據科學家實習生等等。

下面我們來看看這些頭銜的分布情況。

首先獲得由所有與數據科學家有關頭銜的數據。

!wget "top_titles.pkl""https://github.com/khuyentran1401/dataset/raw/master/data_science_market/top_titles.pkl"

top_titles = pickle.load(open( "top_titles.pkl", "rb"))

top_titles[ "data scientist"]

數據科學家相關的頭銜柱狀圖。

可以看到排在前三的分別是,數據科學家、資深數據科學家以及實習數據科學家

還可以用圓形填充圖來看一些數據相關職位的頭銜情況。

07行業趨勢

在谷歌搜索中,數據科學家這個關鍵詞的搜索量隨著時間推移發生了怎樣的變化?

我們可以用pytrends獲得這些數據,然後用Plotly Express繪製數據。

frompytrends.request importTrendReq

defplot_keyword_trend(title: str):

pytrends = TrendReq(hl= "en-US", tz= 360)

pytrends.build_payload(kw_list=[title])

df = pytrends.interest_over_time

returnpx.line(data_frame=df, y=title)

plot_keyword_trend( "data scientist")

圖中可見,從2016年到2021年,人們對關鍵詞「數據科學家」的搜索量呈線性增長。

職位的數量隨著時間推移是如何變化的我們可以利用顯示全職職位數量隨時間變化的數據來計算出來。

dates_df = pd.read_csv(

"https://media.githubusercontent.com/media/khuyentran1401/dataset/master/data_science_market/dates.csv",

index_col=0)

dates_df.head(10)

數據中的第一行顯示,1988年有40位數據科學家從業者。數據中的第二行顯示,1989年有52名數據科學家從業者。

上述數據的線圖。

px.line(dates_df, x= "date", y= "value", color= "name")

從上圖中可以看出一些關鍵信息:

  • 隨著時間的推移, 統計學家的數量相對穩定的。

  • 在2010年之前, 數據錄入員是所有數據相關職位中最受歡迎的。

  • 2010年, 數據分析師的人數超過了數據錄入員。

  • 2013年, 數據科學家、數據分析師和數據工程師的職位都超過了統計學家,數據科學家的角色呈指數級增長,而 數據錄入員變得不那麼重要。

  • 2019年, 機器學習工程師終於超越了統計學家。

隨著時間的推移, 統計學家的數量相對穩定的。

在2010年之前, 數據錄入員是所有數據相關職位中最受歡迎的。

2010年, 數據分析師的人數超過了數據錄入員。

2013年, 數據科學家、數據分析師和數據工程師的職位都超過了統計學家,數據科學家的角色呈指數級增長,而 數據錄入員變得不那麼重要。

2019年, 機器學習工程師終於超越了統計學家。

讓我們使用動態條形圖來查看不同數據相關職位排名的變化:

不錯!通過這個圖表,我們可以看到排名發生變化的確切時間。

08技能變化

隨著時間的推移,數據科學家掌握頂級技能的情況發生了怎樣的變化?

讓我們觀察一下,根據數據顯示隨著時間的推移技能的數量。

skills_df = pd.read_csv(

"https://media.githubusercontent.com/media/khuyentran1401/dataset/master/data_science_market/skills_over_time.csv",

index_col=0,

)

skills_df.head(10)

接下來,我們將使用上述數據創建動態條形圖:

我們可以看到,在2014年之前,教學和經濟學是數據科學家中最受歡迎的兩項技能。然而,2014年之後,Python超越了這兩項技能,成為最受歡迎的技能

以上就是本文的全部內容了,希望能對你有所幫助。

參考連結:

https://www.datacamp.com/blog/what-skills-and-backgrounds-do-data-scientists-have-in-common

點這裡關注我,記得標星哦~

CDA課程諮詢