使用SQL分析數(shù)據(jù)科學(xué)職業(yè)發(fā)展趨勢(shì)
在數(shù)據(jù)成為新石油的今天,了解數(shù)據(jù)科學(xué)職業(yè)的細(xì)微差別比以往任何時(shí)候都更加重要。無論你是正在尋找機(jī)會(huì)的數(shù)據(jù)愛好者,還是資深數(shù)據(jù)專家,使用SQL都可以讓你深入了解數(shù)據(jù)科學(xué)就業(yè)市場。
本文可以帶你了解哪些數(shù)據(jù)科學(xué)職位最具吸引力,或者哪些職位能夠提供最高薪水?;蛟S,你還想知道經(jīng)驗(yàn)水平如何與數(shù)據(jù)科學(xué)的平均工資掛鉤?
在本文中,將深入研究數(shù)據(jù)科學(xué)就業(yè)市場,從而解答所有這些問題(以及更多問題)。跟隨本文開始了解吧!
數(shù)據(jù)集薪資趨勢(shì)
本文將使用的數(shù)據(jù)集旨在揭示2021年至2023年期間數(shù)據(jù)科學(xué)領(lǐng)域的薪資模式。通過重點(diǎn)關(guān)注工作歷史、工作職位以及公司地點(diǎn)等因素,該數(shù)據(jù)集為了解該行業(yè)的工資分布情況提供了重要依據(jù)。
本文將為以下問題找到答案:
- 不同經(jīng)驗(yàn)水平的平均工資是什么樣的?
- 數(shù)據(jù)科學(xué)領(lǐng)域中最常見的職位名稱是什么?
- 薪資分布如何隨公司規(guī)模變化?
- 數(shù)據(jù)科學(xué)崗位主要位于哪些地理位置?
- 數(shù)據(jù)科學(xué)中哪些職位提供薪酬最高?
可以從Kaggle下載這些數(shù)據(jù)。
【數(shù)據(jù)集】:https://www.kaggle.com/code/zabihullah18/data-science-salary-trend
1. 不同經(jīng)驗(yàn)水平的平均工資是什么樣的?
在這個(gè)SQL查詢中,本文正在找出不同經(jīng)驗(yàn)水平的平均工資。GROUP BY子句按經(jīng)驗(yàn)水平對(duì)數(shù)據(jù)進(jìn)行分組,AVG函數(shù)計(jì)算每個(gè)組的平均工資。
這有助于了解該領(lǐng)域的經(jīng)驗(yàn)如何影響收入潛力,這對(duì)規(guī)劃數(shù)據(jù)科學(xué)的職業(yè)道路至關(guān)重要。接下來查看一下代碼。
SELECT experience_level, AVG(salary_in_usd) AS avg_salary
FROM salary_data
GROUP BY experience_level;
現(xiàn)在,本文使用Python可視化這個(gè)輸出。
以下是代碼。
# 導(dǎo)入繪圖所需的庫
import matplotlib.pyplot as plt
import seaborn as sns
# 設(shè)置圖表樣式
sns.set(style="whitegrid")
# 初始化用于存儲(chǔ)圖形的列表
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(rotatinotallow=45)
graphs.append(plt.gcf())
plt.show()
現(xiàn)在,本文來比較一下入門級(jí)和資深級(jí)、中級(jí)和高級(jí)的工資。
首先從入門級(jí)和資深級(jí)的開始。以下是代碼。
# 篩選入門級(jí)和資深級(jí)的數(shù)據(jù)
entry_experienced = df[df['experience_level'].isin(['Entry_Level', 'Experienced'])]
# 篩選中級(jí)和高級(jí)數(shù)據(jù)
mid_senior = df[df['experience_level'].isin(['Mid-Level', 'Senior'])]
# 繪制入門級(jí)與資深級(jí)的對(duì)比圖表
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(rotatinotallow=45)
graphs.append(plt.gcf())
plt.show()
這是生成的圖表。
圖片
現(xiàn)在,本文來繪制中級(jí)和高級(jí)的工資。以下是代碼。
# 繪制中級(jí)和高級(jí)的圖表
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(rotatinotallow=45)
graphs.append(plt.gcf())
plt.show()
圖片
2. 數(shù)據(jù)科學(xué)領(lǐng)域中最常見的職位名稱是什么?
在這里,本文將提取數(shù)據(jù)科學(xué)領(lǐng)域中前10個(gè)最常見的職位名稱。COUNT函數(shù)會(huì)統(tǒng)計(jì)每個(gè)職位名稱的出現(xiàn)次數(shù),并按降序排列結(jié)果,從而將最常見的職位名稱排在最前面。
通過這些信息,可以了解就業(yè)市場的需求情況,從而確定自己可以瞄準(zhǔn)的潛在職位目標(biāo)。接下來查看一下代碼。
SELECT job_title, COUNT(*) AS job_count
FROM salary_data
GROUP BY job_title
ORDER BY job_count DESC
LIMIT 10;
好的,現(xiàn)在使用Python來可視化這個(gè)查詢。
以下是代碼。
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()
接下來看看圖表。
圖片
3. 薪資分布如何隨公司規(guī)模變化?
在這個(gè)查詢中,本文提取了每個(gè)公司規(guī)模分組的平均薪資、最低薪資和最高薪資。使用AVG、MIN和MAX等聚合函數(shù)有助于全面了解薪資情況與公司規(guī)模的關(guān)系。
這些數(shù)據(jù)非常重要,因?yàn)樗鼈兛梢詭椭懔私饪梢云谕臐撛谑杖?,這取決于你想要加入的公司的規(guī)模。接下來查看一下代碼。
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;
現(xiàn)在,本文將使用Python來可視化這個(gè)查詢。
以下是代碼。
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(rotatinotallow=45)
graphs.append(plt.gcf())
plt.show()
以下是輸出結(jié)果。
圖片
4. 數(shù)據(jù)科學(xué)崗位主要位于哪些地理位置?
在這里,本文確定了擁有最多數(shù)據(jù)科學(xué)職位機(jī)會(huì)的前10個(gè)地點(diǎn)。本文使用COUNT函數(shù)來確定每個(gè)地點(diǎn)的職位發(fā)布數(shù)量,并按降序排列,以突出顯示機(jī)會(huì)最多的地區(qū)。
掌握了這些信息,可以幫助讀者了解數(shù)據(jù)科學(xué)職位的中心地理區(qū)域,有助于做出潛在的遷移決定。接下來查看一下代碼。
SELECT company_location, COUNT(*) AS job_count
FROM salary_data
GROUP BY company_location
ORDER BY job_count DESC
LIMIT 10;
現(xiàn)在,本文將使用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()
請(qǐng)查看如下所示的圖表。
圖片
5. 數(shù)據(jù)科學(xué)領(lǐng)域中哪些職位提供薪酬最高?
在這里,本文確定了數(shù)據(jù)科學(xué)領(lǐng)域中薪資最高的前10個(gè)職位頭銜。通過使用AVG,本文計(jì)算出每個(gè)職位頭銜的平均薪資,并根據(jù)平均薪資的降序排序,以突出顯示最賺錢的職位。
通過查看這些數(shù)據(jù),可以在自己的職業(yè)道路上有所追求。接下來繼續(xù)了解讀者如何為這些數(shù)據(jù)創(chuàng)建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;
以下是輸出結(jié)果。
排名 | 職位頭銜 | 平均薪資(美元) |
1 | 數(shù)據(jù)科學(xué)技術(shù)主管 | 375,000.00 |
2 | 云數(shù)據(jù)架構(gòu)師 | 250,000.00 |
3 | 數(shù)據(jù)主管 | 212,500.00 |
4 | 數(shù)據(jù)分析主管 | 211,254.50 |
5 | 首席數(shù)據(jù)科學(xué)家 | 198,171.13 |
6 | 數(shù)據(jù)科學(xué)總監(jiān) | 195,140.73 |
7 | 首席數(shù)據(jù)工程師 | 192,500.00 |
8 | 機(jī)器學(xué)習(xí)軟件工程師 | 192,420.00 |
9 | 數(shù)據(jù)科學(xué)經(jīng)理 | 191,278.78 |
10 | 應(yīng)用科學(xué)家 | 190,264.48 |
這次,讀者可以嘗試自己創(chuàng)建一個(gè)圖表。
提示:可以使用以下ChatGPT中的提示來生成此圖形的Pythonic代碼:
<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查詢代碼>
# 創(chuàng)建一個(gè)Python圖形來可視化數(shù)據(jù)科學(xué)領(lǐng)域中薪資最高的前10個(gè)職位頭銜,類似于上述給定SQL查詢所得到的見解。
結(jié)語
跟隨本文結(jié)束對(duì)數(shù)據(jù)科學(xué)職業(yè)世界的多種探索,希望SQL能成為一個(gè)可靠的指南,幫助你發(fā)掘出有關(guān)支持職業(yè)決策的見解。