多图预警 | 分析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课程咨询