原文:
www.kdnuggets.com/using-sql-to-understand-data-science-career-trends
图片由作者提供
在数据成为新石油的世界中,理解数据科学职业的细微差别比以往任何时候都更重要。无论你是寻找机会的数据爱好者还是探索机会的老手,使用 SQL 都能提供数据科学就业市场的见解。
我希望你急于了解哪些数据科学职位最具吸引力,或者哪些职位提供最丰厚的薪资。或者,也许你在想经验水平如何与数据科学平均薪资关联?
在本文中,我们将深入数据科学就业市场,解答所有这些问题(及更多)。让我们开始吧!
我们将在本文中使用的数据集旨在揭示 2021 到 2023 年的数据科学领域薪资模式。通过重点关注工作经历、职位和公司位置等元素,它提供了该行业薪资分布的重要见解。
本文将回答以下问题:
-
不同经验水平的平均薪资情况如何?
-
数据科学中最常见的职位名称是什么?
-
薪资分布如何随着公司规模变化?
-
数据科学职位主要地理位置在哪里?
-
哪些职位在数据科学中提供最高薪资?
你可以从Kaggle下载这些数据。
在这个 SQL 查询中,我们正在寻找不同经验水平的平均薪资。GROUP BY 子句按经验水平对数据进行分组,AVG 函数计算每个组的平均薪资。
这有助于了解领域经验如何影响收入潜力,这对你规划你的数据科学职业路径至关重要。我们来看一下代码。
SELECT experience_level, AVG(salary_in_usd) AS avg_salary
FROM salary_data
GROUP BY experience_level;
现在让我们用 Python 可视化这个输出。
这里是代码。
# Import required libraries for plotting
import matplotlib.pyplot as plt
import seaborn as sns
# Set up the style for the graphs
sns.set(style="whitegrid")
# Initialize the list for storing graphs
graphs = []
plt.figure(figsize=(10, 6))
sns.barplot(x='experience_level', y='salary_in_usd', data=df, estimator=lambda x: sum(x) / len(x))
plt.title('Average Salary by Experience Level')
plt.xlabel('Experience Level')
plt.ylabel('Average Salary (USD)')
plt.xticks(rotation=45)
graphs.append(plt.gcf())
plt.show()
现在让我们比较入门级和有经验的薪资以及中级和高级薪资。
从入门级和有经验的开始。这里是代码。
# Filter the data for Entry_Level and Experienced levels
entry_experienced = df[df['experience_level'].isin(['Entry_Level', 'Experienced'])]
# Filter the data for Mid-Level and Senior levels
mid_senior = df[df['experience_level'].isin(['Mid-Level', 'Senior'])]
# Plotting the Entry_Level vs Experienced graph
plt.figure(figsize=(10, 6))
sns.barplot(x='experience_level', y='salary_in_usd', data=entry_experienced, estimator=lambda x: sum(x) / len(x) if len(x) != 0 else 0)
plt.title('Average Salary: Entry_Level vs Experienced')
plt.xlabel('Experience Level')
plt.ylabel('Average Salary (USD)')
plt.xticks(rotation=45)
graphs.append(plt.gcf())
plt.show()
这里是图表。
现在让我们绘制中级和高级职位的图表。以下是代码。
# Plotting the Mid-Level vs Senior graph
plt.figure(figsize=(10, 6))
sns.barplot(x='experience_level', y='salary_in_usd', data=mid_senior, estimator=lambda x: sum(x) / len(x) if len(x) != 0 else 0)
plt.title('Average Salary: Mid-Level vs Senior')
plt.xlabel('Experience Level')
plt.ylabel('Average Salary (USD)')
plt.xticks(rotation=45)
graphs.append(plt.gcf())
plt.show()
在这里,我们提取了数据科学领域前 10 个最常见的职位名称。COUNT 函数计算每个职位名称的出现次数,结果按降序排列,以便将最常见的职位排在前面。
这些信息让你对职位市场的需求有一个了解,帮助你识别你可以目标的潜在职位。让我们看看代码。
SELECT job_title, COUNT(*) AS job_count
FROM salary_data
GROUP BY job_title
ORDER BY job_count DESC
LIMIT 10;
好了,现在是时候用 Python 可视化这个查询了。
这是代码。
plt.figure(figsize=(12, 8))
sns.countplot(y='job_title', data=df, order=df['job_title'].value_counts().index[:10])
plt.title('Most Common Job Titles in Data Science')
plt.xlabel('Job Count')
plt.ylabel('Job Title')
graphs.append(plt.gcf())
plt.show()
让我们看看图表。
在这个查询中,我们提取了每个公司规模分组的平均工资、最低工资和最高工资。使用如 AVG、MIN 和 MAX 等聚合函数有助于提供关于公司规模的薪资全景视图。
这些数据非常重要,因为它帮助你了解根据你打算加入的公司的规模,你可以期望的潜在收入,让我们看看代码。
SELECT company_size, AVG(salary_in_usd) AS avg_salary, MIN(salary_in_usd) AS min_salary, MAX(salary_in_usd) AS max_salary
FROM salary_data
GROUP BY company_size;
现在让我们用 Python 可视化这个查询。
这是代码。
plt.figure(figsize=(12, 8))
sns.barplot(x='company_size', y='salary_in_usd', data=df, estimator=lambda x: sum(x) / len(x) if len(x) != 0 else 0, order=['Small', 'Medium', 'Large'])
plt.title('Salary Distribution by Company Size')
plt.xlabel('Company Size')
plt.ylabel('Average Salary (USD)')
plt.xticks(rotation=45)
graphs.append(plt.gcf())
plt.show()
这是输出结果。
在这里,我们确定了提供最多数据科学职位机会的前 10 个地点。我们使用 COUNT 函数来确定每个地点的职位发布数量,并按降序排列,以突出机会最多的地区。
拥有这些信息可以使读者了解数据科学职位的地理中心,有助于潜在的搬迁决策。让我们看看代码。
SELECT company_location, COUNT(*) AS job_count
FROM salary_data
GROUP BY company_location
ORDER BY job_count DESC
LIMIT 10;
现在让我们用 Python 创建上述代码的图表。
plt.figure(figsize=(12, 8))
sns.countplot(y='company_location', data=df, order=df['company_location'].value_counts().index[:10])
plt.title('Geographical Distribution of Data Science Jobs')
plt.xlabel('Job Count')
plt.ylabel('Company Location')
graphs.append(plt.gcf())
plt.show()
让我们看看下面的图表。
在这里,我们识别数据科学领域薪资最高的前 10 个职位名称。通过使用 AVG,我们计算每个职位名称的平均薪资,并按平均薪资降序排序,以突出最有利可图的职位。
你可以通过查看这些数据来设定你的职业目标。让我们继续了解读者如何为这些数据创建 Python 可视化。
SELECT job_title, AVG(salary_in_usd) AS avg_salary
FROM salary_data
GROUP BY job_title
ORDER BY avg_salary DESC
LIMIT 10;
这是输出结果。
(这里我们不能使用照片,因为我们上面已经添加了 4 张照片,剩下的一张用作缩略图。我们是否可以使用类似下面的表格来展示输出结果?)
排名 | 职位名称 | 平均薪资 (美元) |
---|---|---|
1 | 数据科学技术主管 | 375,000.00 |
2 | 云数据架构师 | 250,000.00 |
3 | 数据负责人 | 212,500.00 |
4 | 数据分析主管 | 211,254.50 |
5 | 首席数据科学家 | 198,171.13 |
6 | 数据科学总监 | 195,140.73 |
7 | 首席数据工程师 | 192,500.00 |
8 | 机器学习软件工程师 | 192,420.00 |
9 | 数据科学经理 | 191,278.78 |
10 | 应用科学家 | 190,264.48 |
这次,让我们尝试自己创建一个图表。
提示:你可以在 ChatGPT 中使用以下提示来生成这个图表的 Python 代码:
<SQL Query here>
Create a Python graph to visualize the top 10 highest-paying job titles in Data Science, similar to the insights gathered from the given SQL query above.
当我们结束对数据科学职业世界各种领域的探索时,希望 SQL 能成为一个值得信赖的向导,帮助你发掘支持职业决策的宝贵见解。
我希望你现在感到更加自信,不仅在规划你的职业道路方面,还在使用 SQL 将原始数据转化为强大叙事方面。祝愿你踏入充满机遇的未来,以数据为指南针,以 SQL 为引导力量!
感谢阅读!
内特·罗西迪 是一名数据科学家和产品策略专家。他还是一位兼职教授,教授分析课程,并且是StrataScratch,一个帮助数据科学家准备面试的在线平台的创始人,提供来自顶级公司的真实面试问题。可以通过Twitter: StrataScratch或LinkedIn与他联系。
1. 谷歌网络安全证书 - 快速进入网络安全职业轨道
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT