【毕业设计】大数据岗位薪资水平分析与可视化

您所在的位置:网站首页 大数据岗位薪水 【毕业设计】大数据岗位薪资水平分析与可视化

【毕业设计】大数据岗位薪资水平分析与可视化

2023-10-08 19:40| 来源: 网络整理| 查看: 265

文章目录 1 前言2 数据预处理2.1 爬虫爬取数据2.2 数据清洗 3 数据分析3.1 数据可视化分析 4 最后

1 前言

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!

🔥 对毕设有任何疑问都可以问学长哦!

这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是

🚩 基于大数据挖掘的岗位薪资水平分析

🥇学长这里给一个题目综合评分(每项满分5分)

难度系数:4分工作量:4分创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/yaa-dc/BJH/blob/master/gg/cc/README.md

2 数据预处理 2.1 爬虫爬取数据

数据来源于boss直聘网,通过爬虫采集 采集的城市主要为一线、新一线等较为发达的城市 爬虫代码如下:

from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Chrome(r'D:\PycharmProjects\python_present\boss直聘爬取\chromedriver.exe') cities = [{"name": "北京", "code": 101010100, "url": "/beijing/"}, {"name": "上海", "code": 101020100, "url": "/shanghai/"}, {"name": "广州", "code": 101280100, "url": "/guangzhou/"}, {"name": "深圳", "code": 101280600, "url": "/shenzhen/"}, {"name": "杭州", "code": 101210100, "url": "/hangzhou/"}, {"name": "天津", "code": 101030100, "url": "/tianjin/"}, {"name": "苏州", "code": 101190400, "url": "/suzhou/"}, {"name": "武汉", "code": 101200100, "url": "/wuhan/"}, {"name": "厦门", "code": 101230200, "url": "/xiamen/"}, {"name": "长沙", "code": 101250100, "url": "/changsha/"}, {"name": "成都", "code": 101270100, "url": "/chengdu/"}, {"name": "郑州", "code": 101180100, "url": "/zhengzhou/"}, {"name": "重庆", "code": 101040100, "url": "/chongqing/"}, {"name": "青岛", "code": 101120200, "url": "/qingdao/"}, {"name": "南京", "code": 101190100, "url": "/nanjing/"}] for city in cities: urls = ['https://www.zhipin.com/c{}/?query=数据分析&page={}&ka=page-{}'.format(city['code'], i, i) for i in range(1, 8)] for url in urls: driver.get(url) html = driver.page_source bs = BeautifulSoup(html, 'html.parser') job_all = bs.find_all('div', {"class": "job-primary"}) for job in job_all: position = job.find('span', {"class": "job-name"}).get_text() address = job.find('span', {'class': "job-area"}).get_text() company = job.find('div', {'class': 'company-text'}).find('h3', {'class': "name"}).get_text() salary = job.find('span', {'class': 'red'}).get_text() diploma = job.find('div', {'class': 'job-limit'}).find('p').get_text()[-2:] experience = job.find('div', {'class': 'job-limit'}).find('p').get_text()[:-2] labels = job.find('a', {'class': 'false-link'}).get_text() with open('position.csv', 'a+', encoding='UTF-8-SIG') as f_obj: f_obj.write(position.replace(',', '、') + "," + address + "," + company + "," + salary + "," + diploma+ "," + experience + ',' + labels + "\n") driver.quit() 2.2 数据清洗

在这里插入图片描述 在这里插入图片描述

cols=list(df) cols.insert(4,cols.pop(cols.index('bottom'))) cols.insert(5,cols.pop(cols.index('top'))) cols.insert(6,cols.pop(cols.index('commision_pct'))) cols.insert(7,cols.pop(cols.index('avg_salary'))) df=df.loc[:,cols]

在这里插入图片描述

3 数据分析 3.1 数据可视化分析 df.avg_salary.groupby(df['address']).agg(['mean','median']).plot.bar(figsize=(16,8))

在这里插入图片描述

通过上图,可以发现各个城市的均值与中位数差距不大,但是城市之间区别非常大 北上深杭这四个城市的工资水平远远高于其他城市,广州苏州稍为靠后 靠前的这几个城市也是全国经济最为发达的几个城市,而且都发布在东部 中部城市薪资水平普遍低一些

fig=plt.figure(figsize=(12,6),dpi=80) plt.hist(df['avg_salary'],bins=30,color='#f59311',alpha=0.3,edgecolor='k') plt.ylabel('岗位数',fontsize=15) plt.xlabel('薪资',fontsize=15) plt.xticks(list(range(0,60,5))) plt.show()

在这里插入图片描述 通过上图可以观察到,从总体来看,这个岗位少部分人拿着极高的工资 他们拉高了整个岗位的平均水平 月薪一万至两万的岗位不在少数 然而四千至五千的岗位居然是最多的,那么这些岗位主要是分布在哪些地区或行业呢,下面尝试进行分析

plt.figure(figsize=(16,16),dpi=80) plt.subplot(121) temp = df[df.avg_salary10].groupby('address').avg_salary.count() plt.pie(temp,labels=temp.index,autopct='% .2f%%') plt.title('薪资大于6K各城市占比') plt.legend()

在这里插入图片描述 从以上饼图可以看到,各城市间薪资水平差异非常大,薪资水平小于6k的岗位主要集中分布于重庆、郑州、成都、武汉等中西部城市;而北上广深杭等城市基本不存在薪资水平小于6K的情况;而薪资水平大于6K的岗位分布区别则非常明显,北上广深杭的所占比重直接升至10%以上,重庆、郑州、成都、武汉等城市所占比重则减少到3%左右,由此可见,低薪岗位主要分布于中西部城市。

data1=df[df.address=='北京']['avg_salary'] data2=df[df.address=='上海']['avg_salary'] data3=df[df.address=='广州']['avg_salary'] data4=df[df.address=='深圳']['avg_salary'] data5=df[df.address=='杭州']['avg_salary'] plt.figure(figsize=(12,6),dpi=80) 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()

在这里插入图片描述 选取薪资水平较高的五个城市进行分析 可以发现,北京的薪资水平是最高的,无论是最低值还是最高值,而且均分布在较高的水平 相对来说,杭州上海深圳两级分化最为严重

d = df['avg_salary'].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.4 plt.figure(figsize=(14,8),dpi=80) 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) plt.yticks(list(range(0,40,5))) 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,'{}k'.format(f),ha='center',fontsize=12) for g,h in zip([i+move for i in v],x): plt.text(g,h,'{}k'.format(h),ha='center',fontsize=12) plt.show()

在这里插入图片描述

从学历方面来看,本科是一个分水岭 是否是本科,对薪资水平的影响还是很大的 而本科与硕士之间并没有特别大的差距 博士的薪资水平远远高于其他学历

data = df['diploma'].value_counts() y=data.values plt.figure(figsize=(10,10),dpi=80) plt.pie(y,labels=data.index,autopct='%.1f %%') plt.show()

在这里插入图片描述 从市场需求来看,要求本科占据绝大多数 该岗位对学历的门槛并不是很高,要求硕士的较少,而博士则是凤毛麟角 不过这也从侧面反映了社会上学历的分布状况,本科生及大专生占绝对多数 虽然市场需求量大,但是本科生就业压力也很大

d = df['avg_salary'].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.4 plt.figure(figsize=(14,8),dpi=80) 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,7)+1.2 plt.xticks(a,c) plt.yticks(list(range(0,40,5))) 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,'{}k'.format(f),ha='center',fontsize=12) for g,h in zip([i+move for i in v],x): plt.text(g,h,'{}k'.format(h),ha='center',fontsize=12) plt.show()

在这里插入图片描述

应届生的工资还是比较低的,和工作经验一年内的差距并不大 但是随着工作年限的增加,迈过3年工作经验这个门槛,工资水平将直线上升 说明这个岗位是一个需要累积丰富经验的岗位

data = df['lables'].value_counts() y=data.values plt.figure(figsize=(10,10),dpi=80) plt.pie(y,labels=data.index,autopct='%.1f %%') plt.show()

在这里插入图片描述

通过以上简要分析,可以发现,如果要成功转行,应该往北上广深行这几个城市考虑,这些城市的薪资水平高 而行业方面应该着眼于互联网及电子商务等新兴行业,这些行业对该岗位的需求都比较大,而且薪资水平也普遍高 工作经验对于该岗位而言非常重要,能否成功转行的关键门槛在于是否有工作经验,与薪资水平呈正相关 而转行成功以后,只有在迈过3年这个坎,才会有比较大的突破

4 最后


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3