🧑 博主簡介:曾任某智慧城市類企業
算法總監
,目前在美國市場的物流公司從事高級算法工程師
一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN人工智能領域的優質創作者,提供AI相關的技術咨詢、項目開發和個性化解決方案等服務,如有需要請站內私信或者聯系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉絲群介紹:① 群內初中生、高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜top10的常客也在群里,也有數不清的萬粉大佬,可以交流寫作技巧,上榜經驗,漲粉秘籍。③ 群內也有職場精英,大廠大佬,可交流技術、面試、找工作的經驗。④ 進群免費贈送寫作秘籍一份,助你由寫作小白晉升為創作大佬。⑤ 進群贈送CSDN評論防封腳本,送真活躍粉絲,助你提升文章熱度。有興趣的加文末聯系方式,備注自己的CSDN昵稱,拉你進群,互相學習共同進步。
【數據可視化-12】數據分析崗位招聘分析
- 引言
- 一、數據集簡介
- 二、數據預處理
- 2.1 加載分析需要的庫
- 2.2 導入數據
- 2.3 數據清洗
- 三、可視化分析
- 3.1 各個城市數據分析崗位招聘數量情況
- 3.2 數據分析師在各城市薪資水平情況
- 3.3 薪資和城市分析
- 3.4 熱門城市薪資箱線圖
- 3.5 學歷與薪資數據分析
- 3.6 學歷與崗位需求的數據分析
- 3.7 工齡與薪資數據分析
- 3.8 工齡與市場需求分析
- 3.9 數據分析崗技能需求情況
- 四、結論與建議
引言
??在數字化時代,數據分析已成為各行各業不可或缺的重要技能。為了深入了解當前市場對數據分析師崗位的需求情況,我們從BOSS直聘平臺上爬取了一份關于數據分析師招聘信息的數據集。本博客將通過對這份數據進行可視化分析,揭示數據分析師崗位的地域分布、薪資水平、經驗要求、學歷要求以及技能標簽等關鍵信息,幫助求職者更好地把握市場動態,制定職業規劃。
一、數據集簡介
??本次分析的數據集包含了以下字段:
- company:公司名稱
- job_position:崗位名稱
- job_address:工作地點
- job_salary:薪資范圍
- job_exper:經驗要求及學歷
- company_type:經驗要求
- tags:技能標簽
二、數據預處理
??在正式分析之前,我們加載數據集并進行了預處理,具體流程如下:
2.1 加載分析需要的庫
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as pltimport warnings
from scipy.stats import norm,mode
import re
from collections import Counter
import pyecharts.options as opts
from pyecharts.charts import WordCloudplt.rcParams['font.sans-serif'] = ["SimHei"]
plt.rcParams['axes.unicode_minus'] = False
2.2 導入數據
#導入數據
df = pd.read_csv("boss.csv",header=None)
df.columns = ['company','job_position','job_address','job_salary','job_exper','company_type','tags']
df.head()
df.info()
??數據一共有7個維度,2537條招聘記錄,而且數據中無缺失值的存在。
2.3 數據清洗
- 首先把工作job_exper:經驗要求及學歷,拆分成工作經驗experience和學歷diploma字段;
- 對數據進行去重;
- 計算各城市薪資均值
df["experience"]=df["job_exper"].str.extract("^(\d+/?-\d+)")
df["diploma"]=df["job_exper"].str[-2:]#去重
df.duplicated().sum()df["experience"].replace(np.nan,"經驗不限",inplace=True)
df["experience"].replace("1-3","1-3年",inplace=True)
df["experience"].replace("3-5","3-5年",inplace=True)
df["experience"].replace("5-10","5-10年",inplace=True)
df["experience"].unique()
#計算各城市薪資均值
def avg_ar(x):if "-" in x:a,b=x.split("-")return (int(a)+int(b))/2else:return None
df["avg_address"]=df["job_salary"].apply(lambda x: re.split("K|元",x)[0])
df["avg_address"]=df["avg_address"].apply(lambda x: avg_ar(x))
df.head()
三、可視化分析
??為了進行這些可視化分析,我們將使用Python及其相關庫(如pandas、matplotlib、seaborn等)來處理和分析數據。以下是一個詳細的步驟指南和相應的Python代碼示例。
3.1 各個城市數據分析崗位招聘數量情況
??我們可以使用matplotlib或seaborn來繪制各個城市數據分析崗位招聘數量情況。
city_job_num = df['job_address'].value_counts().reset_index()
city_job_num.columns = ['city','job_nums']
sns.barplot(x='city', y='job_nums', data=city_job_num)
plt.xticks(rotation=45) # 旋轉x軸標簽以便閱讀
plt.title('各城市數據分析師招聘數量情況')
plt.show()
??從圖中我們可以知道,南京發布的數據分析招聘信息數量最多;
3.2 數據分析師在各城市薪資水平情況
??我們可以使用matplotlib或seaborn來繪制薪資水平的柱狀圖。
# 按城市分組并計算平均薪資
city_salaries = df.groupby('job_address')['avg_address'].mean().reset_index()# 繪制薪資水平的地圖(需要額外的地理數據,這里使用柱狀圖作為替代)
sns.barplot(x='job_address', y='avg_address', data=city_salaries)
plt.xticks(rotation=45) # 旋轉x軸標簽以便閱讀
plt.title('數據分析師在各城市薪資水平情況')
plt.show()
??從圖中我們可以知道,北京、杭州、上海、深圳發布的數據分析招聘信息薪資最高;
3.3 薪資和城市分析
??我們已經計算了各城市的在一定范圍內的薪資占比情況;
# 薪資和城市
fig=plt.figure(figsize=(10,5),dpi=100)
plt.subplot(121)
temp=df[df.avg_address<10].groupby("job_address").avg_address.count()
temp=pd.DataFrame(temp).sort_values("avg_address").iloc[-8:]
plt.pie(temp["avg_address"],labels=temp.index,autopct="%.2f%%")
plt.title("薪資小于10K的城市占比")
plt.subplot(122)
temp=df[df.avg_address>10].groupby("job_address").avg_address.count()
temp=pd.DataFrame(temp).sort_values("avg_address").iloc[-8:]
plt.pie(temp["avg_address"],labels=temp.index,autopct="%.2f%%")
plt.title("薪資大于10K的城市占比")plt.show()
??從上圖可以看出,在薪資小于10k的城市占比中南京和武漢發布的招聘最高,在薪資大于10k的城市占比中北京和杭州發布的招聘信息最多。
3.4 熱門城市薪資箱線圖
??我們可以選擇幾個熱門城市,并繪制它們的薪資箱線圖。
# 熱門城市薪資箱線圖
df1=df[df["avg_address"]<100]
data1=df1[df.job_address=="北京"]["avg_address"]
data2=df1[df.job_address=="上海"]["avg_address"]
data3=df1[df.job_address=="廣州"]["avg_address"]
data4=df1[df.job_address=="深圳"]["avg_address"]
data5=df1[df.job_address=="杭州"]["avg_address"]
plt.figure(figsize=(12,6))
plt.boxplot([data1,data2,data3,data4,data5],labels=["北京","上海","廣州","深圳","杭州"],flierprops={"marker":"o","markerfacecolor":"r","color":"k"},patch_artist=True,boxprops={"color":"k","facecolor":"#FFFACD"})
ax=plt.gca()
ax.patch.set_facecolor("#FFFAFA")
ax.patch.set_alpha(0.8)
plt.title("主要城市薪資水平箱線圖",fontsize=15)
plt.ylabel("薪資(單位:K)",fontsize=12)plt.show()
??從上圖中可以看出,幾個主要的熱門城市發布的招聘信息來看,平均薪資最高的是北京,最低的是廣州,杭州的高工資和低工資都比較多,求職者的可能性更大,發展機遇就好,努力奮斗;
3.5 學歷與薪資數據分析
??我們可以使用條形圖來展示不同學歷的薪資分布。
# 學歷與薪資數據分析
d=df["avg_address"].groupby(df["diploma"])
d_avg = d.mean()
c=list(d_avg.index)
v=list(range(1,len(c)+1))
w=d_avg.values.astype("int64")
x=d.median().values.astype("int64")
move=0.4plt.figure(figsize=(12,5))
plt.bar(v,w,width=move,color="#eed777")
plt.bar([i+move for i in v],x,width=move,color="#334f65")
a=np.arange(0,7)+1.2
plt.xticks(a,c,fontsize=15)
plt.yticks(list(range(0,60,10)),fontsize=15)
plt.legend(["均值","中位數"])
plt.title("各學歷薪資均值及中位數比較圖",fontsize=16)plt.xlabel("學歷",fontsize=12)
plt.ylabel("薪資(單位:K)",fontsize=12)for e,f in zip(v,w):plt.text(e,f+1,"{}K".format(f),ha="center",fontsize=12)
for g,h in zip([i+move for i in v],x):plt.text(g,h+1,"{}K".format(h),ha="center",fontsize=12)
plt.show()
??從上圖可以看得出,薪資和學歷一般是呈現正相關的關系,學歷越高薪資也會越高,兄弟們,不說了寫好卷學歷去了。
3.6 學歷與崗位需求的數據分析
??我們可以使用餅狀圖來展示不同學歷在崗位需求中的占比。
# 學歷與崗位需求的數據分析
data=df["diploma"].value_counts()
y=data.values
plt.figure(figsize=(6,6))
plt.pie(y,labels=data.index,autopct="%.2f%%")
plt.show()
??從上圖可以看出,數據分析崗位招聘要求中本科學歷是占絕大多數的。
3.7 工齡與薪資數據分析
??我們可以使用條狀圖來展示不同工齡的薪資分布。
# 工齡與薪資數據分析
d=df["avg_address"].groupby(df["experience"])
d_avg = d.mean()
c=list(d_avg.index)
v=list(range(1,len(c)+1))
w=d_avg.values.astype("int64")
x=d.median().values.astype("int64")
move=0.4plt.figure(figsize=(14,8))
plt.bar(v,w,width=move,color="#002c53")
plt.bar([i+move for i in v],x,width=move,color="#0c84c6")
a=np.arange(0,4)+1.2
plt.xticks(a,c,fontsize=15)
plt.yticks(list(range(0,35,5)),fontsize=15)
plt.legend(["均值","中位數"])
plt.title("各學歷薪資均值及中位數比較圖",fontsize=16)plt.xlabel("工作經驗",fontsize=12)
plt.ylabel("薪資(單位:K)",fontsize=12)for e,f in zip(v,w):plt.text(e,f+1,"{}K".format(f),ha="center",fontsize=12)
for g,h in zip([i+move for i in v],x):plt.text(g,h+1,"{}K".format(h),ha="center",fontsize=12)
plt.show()
??從圖中可以看出,工作的年限越長,工資也會相應的高一些。
3.8 工齡與市場需求分析
??我們可以使用餅狀圖來展示不同工齡在市場需求中的占比。
# 工齡與市場需求分析
data=df["experience"].value_counts()
y=data.values
plt.figure(figsize=(6,6))
plt.pie(y,labels=data.index,autopct="%.2f%%",colors = ['tomato', 'lightskyblue', 'goldenrod', 'green'])
plt.show()
??從上圖可以看出,工齡3-5年工作的人有一定的工作經驗,工資也相對較小,所以比較受歡迎。的需求量是最大的占35.87%,該3-5年工作的人有一定的工作經驗,工資也相對較小,所以比較受歡迎。
3.9 數據分析崗技能需求情況
tag = df['tags'].tolist()
tags = []
for item in tag:item_split = item.split(',')tags.extend(item_split)counter = Counter(tags)
element_counts = dict(counter)data = []
for item in element_counts.keys():data.append((item,element_counts.get(item)))c = (WordCloud().add(# 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。series_name="數據分析崗位技能需求", # 系列數據項,[(word1, count1), (word2, count2)]data_pair=data, # 單詞字體大小范圍word_size_range=[6, 66])# 全局配置項.set_global_opts(# 標題設置title_opts=opts.TitleOpts(title="數據分析崗位技能需求", title_textstyle_opts=opts.TextStyleOpts(font_size=23)),# 提示框設置tooltip_opts=opts.TooltipOpts(is_show=True),).render("basic_wordcloud.html")
)
??從上圖可以看出,SQL、Python等數據分析工具是基礎技能,數據挖掘、大數據處理、建模等高級技能是加分項。
四、結論與建議
??通過對BOSS直聘平臺上數據分析師招聘信息的可視化分析,我們得出以下結論:
- 數據分析師崗位主要集中在一線城市和新一線城市,薪資水平較高但競爭激烈。
- 市場對數據分析師的經驗和學歷要求以本科為主,但高級崗位對學歷和經驗要求更高。
- SQL、Python等數據分析工具是基礎技能,機器學習、大數據處理等高級技能是加分項。
??針對以上結論,我們提出以下建議:
- 求職者應結合自身實際情況,選擇適合自己的城市和行業方向。
- 注重提升個人技能和經驗積累,尤其是SQL、Python等數據分析工具的使用能力。
- 關注市場動態和新興技術趨勢,不斷拓展自己的知識邊界和技能組合。