2022大作业项目报告
2022大作业项目报告
项目名称:2022网络平台招聘信息汇总数据分析
班级:大数据2002
专业:大数据技术与应用
目录
文章目录
- 2022大作业项目报告
- 项目名称:2022网络平台招聘信息汇总数据分析
- 班级:大数据2002
- 专业:大数据技术与应用
- **目录**
- 项目概况
- **项目进度**
- 流程
- 项目介绍
- **项目背景|需求分析**
- **背景**
- **数据来源**
- **分析平台**
- 数据获取
- 数据分析
- 数据可视化
- 其它
- 爬取内容
- 爬虫技术介绍
- 支持库
- 代码展示
- 导入需要的库
- 爬虫主程序
- 存储过程
- 程序概况
- 优点
- 缺点
- 爬取内容
- 内容展示(仅一部分)
- 数据分析
- 数据来源
- 处理方式
- 数据分析技术介绍
- 支持库
- 代码展示
- 单个数据处理
- 导入函数库
- 定义的函数
- 数据处理主程序
- 合并数据处理
- 导入函数库
- 定义函数
- 数据处理程序
- 关键词汇总处理
- 导入函数库
- 主程序
- 程序概况
- 优点
- 缺点
- 数据分析结果
- 内容展示
- 数据可视化
- 概况
- 分析途径
- 概况
- 内容
- 可视化技术介绍
- 支持库
- 代码展示
- 程序概况
- 优点
- 缺点
- 可视化大屏展示
- 主可视化大屏
- 可视化结果评价、分析
- 项目总结
- 注:数据及分析报告仅供参考,切勿带入实际
项目概况
- 介于同学们即将走出校园,面向社会。本项目以分析计算机类专业(大数据、人工智能、云计算、物联网),四个专业的招聘信息,从而获取一份直观、全面的昆明市就业情况数据为目的。
- 从包括但不限于:就业岗位名称,就业岗位地点,工作经验限制,岗位学历要求等类别信息为切入点做数据分析,从而帮助同学们更快地了解到昆明市与计算机类专业有关岗位的大致情况。
项目进度
流程
- 数据获取:2022年6月12日-2022年6月18日
- 数据分析:2022年6月19日-2022年6月24日
- 数据可视化:2022年6月20日-2022年7月3日(预计)
- 项目报告撰写:2022年7月1日-2022年7月3日(预计)
**预计耗时:**22天
项目介绍
项目背景|需求分析
背景
- 同学们离校实习,本项目整对计算机专业学生,进行招聘信息分析。
需求
- 帮助同学们了解当前就业市场,更快地确定就业方向
数据来源
- 以BOSS直聘为主要数据源的各个招聘信息发布网站
分析平台
数据获取
- Annaconda Python
数据分析
- Annaconda Python
- Microsoft Excel
数据可视化
- Apache Echarts
其它
Visual Studio Code
Google Chrome
爬取内容
- 包括但不限于:
- 职位名称
- 工作薪资
- 学历要求
- 工作经验
爬虫技术介绍
支持库
名称 | 版本 | 功能 |
---|---|---|
Python | 3.9.7 | 开发核心 |
Annaconda Navigator | 2.1.1 | Python集成开发环境 |
JupyterLab | 3.2.1 | ipynb类型文件运行环境 |
Notebook | 6.4.5 | ipynb类型文件运行环境 |
Python Numpy | 1.20.3 | 用于创建数组存储 |
Python Pandas | 1.3.4 | 用于导出 |
Python tkinter | - | 用于导入文件 |
Python re | - | 用于处理 |
Python Json | - | 用于数据json化 |
Python Selenium | 4.2.0 | 用于浏览器的控制 |
Python Time | - | 用于爬取过程中的进程暂停 |
Python BeautifulSoup4 | 4.10.0 | 用于解析爬取的网页 |
代码展示
导入需要的库
from selenium import webdriver
import re
import time
from bs4 import BeautifulSoup
# import pymysql
import pandas as pd
import numpy as np
爬虫主程序
# 打开浏览器
browser=webdriver.Chrome(r'F:\2022大作业\selenium\chromedriver.exe')
page=1
search_word='大数据'
job_name=[]
job_area=[]
job_salary=[]
job_workexp=[]
job_edu=[]
company_name=[]
words=[]
while 1:url='https://www.zhipin.com/c101290100/?query=%s&page=%s'%(search_word,page)browser.get(url)time.sleep(5)html=browser.page_sourcesoup=BeautifulSoup(html,'lxml')# 获取工作列表job_list=soup.find_all('div',class_='job-list')[0]# 存储数据tmp=[i.find_all('a')[0].get('title') for i in job_list.find_all('span',class_='job-name')]tmp1=[i.get_text() for i in job_list.find_all('h3',class_="name")[1::2]]if page!=1:# print('tmp:%s\njobname:%s\ntmp1:%s\ncompanyname:%s\n'%(tmp[-1],job_name[-1],tmp1[-1],company_name[-1]))# print((tmp[-1]==job_name[-1]) & (tmp1[-1]==company_name[-1]))if (tmp[-1]==job_name[-1]) & (tmp1[-1]==company_name[-1]):print("success")breakjob_name+=tmpcompany_name+=tmp1tmp=[i.get_text() for i in job_list.find_all('span',class_='red')]job_salary+=tmpfor i in job_list.find_all('div',class_="job-limit clearfix"):job_workexp.append(re.findall(r'<p>(.*)<em class="vline"><\/em>',str(i))[0])job_edu.append(re.findall(r'</em>(.*)</p>',str(i))[0])tmp=[i.get_text() for i in job_list.find_all('span',class_='job-area')]job_area+=tmpfor i in job_list.find_all('span',class_="tag-item"):words.append(i.get_text())print('page: %s success'%(page))page+=1
# for i in range(len(job_workexp)):
# job_workexp[i]=re.sub(r'[<>/ ="]',repl='',string=job_workexp[i])
# for i in range(len(job_edu)):
# job_edu[i]=re.sub(r'[<>/ ="]',repl='',string=job_edu[i])
# print('\n success\n\n\n')
存储过程
# 写入csv中
table={'职位名称':job_name,'工作地点':job_area,'薪水':job_salary,'工作经验':job_workexp,'学历':job_edu,'公司':company_name}
csv=pd.DataFrame(table)
csv.to_csv('../csv/boss/boss直聘招聘信息-[%s].csv'%(search_word),mode="a+",encoding='gbk',index=False)
words_table={'关键词':words}
words_table=pd.DataFrame(words_table)
words_table.to_csv('../csv/boss/boss直聘招聘信息关键词-[%s].csv'%(search_word),mode="a+",encoding='gbk',index=False)
程序概况
优点
- 采用半自动化程序,提供搜索关键词变量,重复运行可以得到各类数据
- 采用selenium库,模拟浏览器的方式进行爬取,很大程度上避免了爬取不到数据的问题
- 采用csv存储,有效降低导入数据耗时,提高项目完成效率
缺点
- 采用re库正则表达式对数据进行切片,容易出现数据异常的情况
- 爬虫程序翻页爬取有一定概率爬取空页面,无法获取数据,从而导致报错
- 数据存储采用"a+"方式,出现大量冗余数据,造成不必要的资源浪费
爬取内容
- boss直聘招聘信息关键词-[大数据].csv
- boss直聘招聘信息关键词-[云计算].csv
- boss直聘招聘信息关键词-[人工智能].csv
- boss直聘招聘信息关键词-[物联网].csv
- boss直聘招聘信息-[物联网].csv
- boss直聘招聘信息-[云计算].csv
- boss直聘招聘信息-[大数据].csv
- boss直聘招聘信息-[人工智能].csv
内容展示(仅一部分)
数据分析
数据来源
- 上述爬虫程序所获取到的数据
处理方式
- 对上述数据中的冗余数据进行删除操作
- 对处理后的数据进行异常值处理
- 将处理后的数据进行WordCount词频统计等操作
- 规划数据,为数据可视化做准备
- 将数据json化
- 导出json数据
数据分析技术介绍
支持库
名称 | 版本 | 功能 |
---|---|---|
Python | 3.9.7 | 开发核心 |
Annaconda Navigator | 2.1.1 | Python集成开发环境 |
JupyterLab | 3.2.1 | ipynb类型文件运行环境 |
Notebook | 6.4.5 | ipynb类型文件运行环境 |
Python Numpy | 1.20.3 | 用于创建数组存储 |
Python Pandas | 1.3.4 | 用于导出 |
Python tkinter | - | 用于导入文件 |
Python Json | - | 用于数据json |
代码展示
单个数据处理
导入函数库
import numpy as np
import pandas as pd
import tkinter as tk
from tkinter import filedialog
import re
import json
定义的函数
def wordCount(column,filename):tmp_pd=dict(data['%s'%(column)].value_counts())tmp_dict={'name':list(tmp_pd.keys()),'value':np.array(list(tmp_pd.values()),dtype=int).tolist()}json_save=json.dumps(tmp_dict,ensure_ascii=False)with open(r'../json/boss/%s_WordCount.json'%(filename),mode='w+',encoding='utf-8') as w:w.write(json_save)return 'success'
def salaryAbove4000(filename):result=0other=0refuse=0for i in range(len(data['薪水'])):if '其它' in str(data.iloc[i,-1]):other+=1continueif int(data.iloc[i,-1]) > 4000:result+=1else:refuse+=1tmp_dict={'name':['>4000','<4000','other'],'value':[result,refuse,other]}json_save=json.dumps(tmp_dict,ensure_ascii=False)with open(r'../json/boss/%s.json'%(filename),mode='w+',encoding='utf-8') as w:w.write(json_save)return 'success'# print('工资大于4k的有 %s 家\n工资小于4k的有 %s 家\n未参与计算的有 %s 家'%(result,other,refuse))
数据处理主程序
path=filedialog.askopenfile()
data1=pd.read_csv(path)
pathname=re.findall(r'/代码/(.*)\.csv',path.name)[0]
data=data1.drop_duplicates(subset=list(data1.columns),keep='first')
tmp_area=[re.split(pattern='[·-]',string=i) for i in data.iloc[:,2]]
tmp_area_city=[]
tmp_area_1=[]
tmp_area_2=[]
for i in tmp_area:if len(i) != 3:i.append('')if len(i) != 3:i.append('')if len(i) != 3:i.append('')
# print(i)tmp_area_city.append(i[0])tmp_area_1.append(i[1])tmp_area_2.append(i[2])
data.insert(loc=3,column='工作地点(市)',value=tmp_area_city,allow_duplicates=False)
data.insert(loc=4,column='工作地点(区县)',value=tmp_area_1,allow_duplicates=False)
data.insert(loc=5,column='工作地点(详细)',value=tmp_area_2,allow_duplicates=False)
data.drop('工作地点',axis=1,inplace=True)
salaryAbove4000('工资')
for i in data.columns[1:-2]:wordCount(i,i)
print('success')
合并数据处理
导入函数库
import numpy as np
import pandas as pd
import tkinter as tk
from tkinter import filedialog
import re
import json
定义函数
def fix(data):data=datafor i in range(data.shape[0]):if '<em class="vline"></em>' in data.iloc[i,1]:data.iloc[i,1]= data.iloc[i,1][-2:]if '<em class="vline"></em>' in data.iloc[i,3]:data.iloc[i,3]= '其它'if '薪' in data.iloc[i,5]:data.iloc[i,5]= '其它'if '元/天' in data.iloc[i,5]:data.iloc[i,5]= '其它'if '-' in data.iloc[i,5]:data.iloc[i,5]=re.findall(r'(\d+)-.*',string=data.iloc[i,5])[0]+'000'tmp_area=[re.split(pattern='[·-]',string=i) for i in data.iloc[:,2]]tmp_area_city=[]tmp_area_1=[]tmp_area_2=[]for i in tmp_area:if len(i) != 3:i.append('')if len(i) != 3:i.append('')if len(i) != 3:i.append('')# print(i)tmp_area_city.append(i[0])tmp_area_1.append(i[1])tmp_area_2.append(i[2])data.insert(loc=3,column='工作地点(市)',value=tmp_area_city,allow_duplicates=False)data.insert(loc=4,column='工作地点(区县)',value=tmp_area_1,allow_duplicates=False)data.insert(loc=5,column='工作地点(详细)',value=tmp_area_2,allow_duplicates=False)data.drop('工作地点',axis=1,inplace=True)
def salaryAbove4000(data):data=dataresult=0other=0refuse=0for i in range(len(data['薪水'])):i=int(i)if '其它' in str(data.iloc[i,-1]):other+=1continueif int(data.iloc[i,-1]) > 4000:result+=1else:refuse+=1tmp_dict={'name':['>4000','<4000','other'],'value':[result,refuse,other]}json_save=json.dumps(tmp_dict,ensure_ascii=False)with open(r'../json/boss/all_salary.json',mode='w',encoding='utf-8') as w:w.write(json_save)return 'success'
def wordCount(column):tmp_pd=dict(data['%s'%(column)].value_counts())tmp_dict={'name':list(tmp_pd.keys()),'value':np.array(list(tmp_pd.values()),dtype=int).tolist()}json_save=json.dumps(tmp_dict,ensure_ascii=False)with open(r'../json/boss/all[%s]_WordCount.json'%(column),mode='w',encoding='utf-8') as w:w.write(json_save)return 'success'
def speacialType(data,column):data=datacolumn=columntmp_dict=dict(data[column].value_counts())# tmp_dict_keys=tmp_dict.keys() tmp_result=[]for i in range(len(tmp_dict.keys())):tmp_dict_tmp={'name':list(tmp_dict.keys())[i],'value':np.array(list(tmp_dict.values()),dtype=int).tolist()[i]}tmp_result.append(tmp_dict_tmp)return tmp_result
数据处理程序
file1=filedialog.askopenfile()
file2=filedialog.askopenfile()
file3=filedialog.askopenfile()
file4=filedialog.askopenfile()
data1=pd.read_csv(file1)
data2=pd.read_csv(file2)
data3=pd.read_csv(file3)
data4=pd.read_csv(file4)
for i in ['data1','data2','data3','data4']:exec('fix(%s)'%(i))
data=pd.concat([data1,data2,data3,data4],axis=0)
# data.to_csv('../csv/boss/boss_all.csv',encoding='gbk',mode='w+')
salaryAbove4000(data)
for i in data.columns[1:-2]:if i=='学历': tmp_dict={'name':sorted(list(dict(data['学历'].value_counts()).keys()))[2:],'value':np.array(sorted(list(dict(data['学历'].value_counts()).values()))[2:],dtype=int).tolist()}json_save=json.dumps(tmp_dict,ensure_ascii=False)with open(r'../json/boss/all[学历]_WordCount.json',mode='w',encoding='utf-8') as w:w.write(json_save)continuewordCount(i)
print('success')data=data1
result=0
other=0
refuse=0
for i in range(len(data['薪水'])):i=int(i)if '其它' in str(data.iloc[i,-1]):other+=1continueif int(data.iloc[i,-1]) > 4000:result+=1else:refuse+=1
tmp_dict={'name':['>4000','<4000','other'],'value':[result,refuse,other]}
# json_save=json.dumps(tmp_dict,ensure_ascii=False)
exec('tmp_dict%s=tmp_dict'%('1'))
data=data2
result=0
other=0
refuse=0
for i in range(len(data['薪水'])):i=int(i)if '其它' in str(data.iloc[i,-1]):other+=1continueif int(data.iloc[i,-1]) > 4000:result+=1else:refuse+=1
tmp_dict={'name':['>4000','<4000','other'],'value':[result,refuse,other]}
# json_save=json.dumps(tmp_dict,ensure_ascii=False)
exec('tmp_dict%s=tmp_dict'%('2'))
data=data3
result=0
other=0
refuse=0
for i in range(len(data['薪水'])):i=int(i)if '其它' in str(data.iloc[i,-1]):other+=1continueif int(data.iloc[i,-1]) > 4000:result+=1else:refuse+=1
tmp_dict={'name':['>4000','<4000','other'],'value':[result,refuse,other]}
# json_save=json.dumps(tmp_dict,ensure_ascii=False)
exec('tmp_dict%s=tmp_dict'%('3'))
data=data4
result=0
other=0
refuse=0
for i in range(len(data['薪水'])):i=int(i)if '其它' in str(data.iloc[i,-1]):other+=1continueif int(data.iloc[i,-1]) > 4000:result+=1else:refuse+=1
tmp_dict={'name':['>4000','<4000','other'],'value':[result,refuse,other]}
# json_save=json.dumps(tmp_dict,ensure_ascii=False)
exec('tmp_dict%s=tmp_dict'%('4'))
tmp_dict1_fixed=[]
for i in range(len(tmp_dict1['name'])):tmp_dict_tmp={'name':tmp_dict1['name'][i],'value':tmp_dict1['value'][i]}tmp_dict1_fixed.append(tmp_dict_tmp)tmp_dict2_fixed=[]
for i in range(len(tmp_dict2['name'])):tmp_dict_tmp={'name':tmp_dict2['name'][i],'value':tmp_dict2['value'][i]}tmp_dict2_fixed.append(tmp_dict_tmp)tmp_dict3_fixed=[]
for i in range(len(tmp_dict3['name'])):tmp_dict_tmp={'name':tmp_dict3['name'][i],'value':tmp_dict3['value'][i]}tmp_dict3_fixed.append(tmp_dict_tmp)tmp_dict4_fixed=[]
for i in range(len(tmp_dict4['name'])):tmp_dict_tmp={'name':tmp_dict4['name'][i],'value':tmp_dict4['value'][i]}tmp_dict4_fixed.append(tmp_dict_tmp)
result={'yun':tmp_dict1_fixed,'da':tmp_dict2_fixed,'wu':tmp_dict3_fixed,'zhi':tmp_dict4_fixed}
result=json.dumps(result,ensure_ascii=False)
with open(r'../json/boss/不同专业工资.json',mode='w',encoding='utf-8') as w:w.write(result)tmp_dict1_fixed=speacialType(data1,'工作地点(区县)')
tmp_dict2_fixed=speacialType(data2,'工作地点(区县)')
tmp_dict3_fixed=speacialType(data3,'工作地点(区县)')
tmp_dict4_fixed=speacialType(data4,'工作地点(区县)')
result={'yun':tmp_dict1_fixed,'da':tmp_dict2_fixed,'wu':tmp_dict3_fixed,'zhi':tmp_dict4_fixed}
result=json.dumps(result,ensure_ascii=False)
with open(r'../json/boss/不同专业地点.json',mode='w',encoding='utf-8') as w:w.write(result)tmp_dict1_fixed=speacialType(data1,'学历')
tmp_dict2_fixed=speacialType(data2,'学历')
tmp_dict3_fixed=speacialType(data3,'学历')
tmp_dict4_fixed=speacialType(data4,'学历')
result={'yun':tmp_dict1_fixed,'da':tmp_dict2_fixed,'wu':tmp_dict3_fixed,'zhi':tmp_dict4_fixed}
result=json.dumps(result,ensure_ascii=False)
with open(r'../json/boss/不同专业学历占比.json',mode='w',encoding='utf-8') as w:w.write(result)
关键词汇总处理
导入函数库
import pandas as pd
from tkinter import filedialog
import numpy as np
import json
主程序
file1=filedialog.askopenfile()
file2=filedialog.askopenfile()
file3=filedialog.askopenfile()
file4=filedialog.askopenfile()
data1=pd.read_csv(file1)
data2=pd.read_csv(file2)
data3=pd.read_csv(file3)
data4=pd.read_csv(file4)
data=pd.concat([data1,data2,data3,data4],axis=0)
tmp_pd=dict(data['关键词'].value_counts())
list_tmp=[]
for i in range(len(list(tmp_pd.keys()))-370):list_tmp.append('{"name":"%s","value":%s},'%(list(tmp_pd.keys())[i],np.array(list(tmp_pd.values())[i],dtype=int).tolist()))
with open(r'../../可视化/词云图/words.txt',mode='a+',encoding='utf-8') as w:for i in list_tmp:w.write(i)
程序概况
优点
- 采用tkinter库UI界面读取文件来取代直接输入文件路径,优化操作,提高代码执行效率
- 采用定义函数的方式来进行模块化编程,节省编辑代码时间,提高项目完成效率
- 采用半自动化程序,仅使用filedialog.askopenfile()函数进行文件获取,其余程序自动运行,重复运行可以得到各类数据
- 采用json数据代替csv文件,进行数据可视化时直接导入数据,无需进行数据的整理操作
缺点
- 部分代码由于时间问题未进行模块化处理,导致代码重复较多,导致部分区块代码繁琐复杂
- 对于异常数据的处理,仅采用归纳方式(将异常数据归纳为其它类),导致数据分析存在一定的偏差
- 极少部分异常数据比较特殊,且程序并未检测到异常,导致数据中出现特例数据,使数据分析存在一定偏差
数据分析结果
文件名 | 文件名 | 文件名 |
---|---|---|
all[工作地点(区县)]_WordCount.json | all[工作地点(市)]_WordCount.json | all[工作地点(详细)]_WordCount.json |
all[工作经验]_WordCount.json | all[学历]_WordCount.json | all_salary.json |
boss直聘招聘信息(大数据)+工资.json | boss直聘招聘信息(大数据)+工作地点(区县)WordCount.json | boss直聘招聘信息(大数据)+工作地点(市)WordCount.json |
boss直聘招聘信息(大数据)+工作地点(详细)WordCount.json | boss直聘招聘信息(大数据)+工作经验WordCount.json | boss直聘招聘信息(大数据)+学历WordCount.json |
boss直聘招聘信息(人工智能)+工资.json | boss直聘招聘信息(人工智能)+工作地点(区县)WordCount.json | boss直聘招聘信息(人工智能)+工作地点(市)WordCount.json |
boss直聘招聘信息(人工智能)+工作经验WordCount.json | boss直聘招聘信息(人工智能)+学历WordCount.json | boss直聘招聘信息(物联网)+工作地点(区县)WordCount.json |
boss直聘招聘信息(人工智能)+工作地点(详细)WordCount.json | boss直聘招聘信息(物联网)+工资.json | boss直聘招聘信息(物联网)+工作地点(市)WordCount.json |
boss直聘招聘信息(物联网)+工作地点(详细)WordCount.json | boss直聘招聘信息(物联网)+工作经验WordCount.json | boss直聘招聘信息(物联网)+学历WordCount.json |
boss直聘招聘信息(云计算)+工资.json | boss直聘招聘信息(云计算)+工作地点(区县)WordCount.json | boss直聘招聘信息(云计算)+工作地点(市)WordCount.json |
boss直聘招聘信息(云计算)+工作地点(详细)WordCount.json | boss直聘招聘信息(云计算)+工作经验WordCount.json | boss直聘招聘信息(云计算)+学历WordCount.json |
不同专业地点.json | 不同专业工资.json | 不同专业学历占比.json |
工资.json | 工作地点(区县)_WordCount.json | 工作地点(市)_WordCount.json |
工作地点(详细)_WordCount.json | 工作经验_WordCount.json | 学历_WordCount.json |
内容展示
数据可视化
概况
- 巨量数据表格的表现确实能带给人们深刻的影响,但数据量庞大的同时也代表着无法直观的看出当前情况分部,当前同学们所处的局势。这时候就能体现出可视化图表的重要性,通过图标我们可以简介明了地看出招聘信息的大致内容,充分让同学们了解就业信息,方便同学们解决择业,实习等问题。
- 本项目数据可视化由于采用json数据导入方式画图,导致报告中出现跨域问题而无法展示类型为html的可视化图表,该问题已被发现且在解决中
分析途径
概况
- 使用上述数据分析导出的json进行可视化图表的绘制
内容
- 工作地点:采用区县划分,充分了解昆明市各个区县的招聘信息分部
- 工作经验:了解招聘信息中工作经验的限制
- 学历要求:了解招聘信息中对学历的要求
- 工作薪资:以最低薪水为主要分析内容、4000元/月为分水岭,统计招聘信息
可视化技术介绍
支持库
- Appache Echarts
代码展示
- 代码过于庞大,详细查看附件
程序概况
优点
- 统一的可视化大屏,各个专业招聘信息比较方便
- 从工作学历、工作地点、工作薪资、工作经验四个方面解读当前就业形式,直观,方便
缺点
- 采用json文件进行可视化时,遇到了预期外的跨域问题,该问题尚未解决,采用直接写入的方式进行数据的可视化,项目完成效率收到影响
- 代码优化程度不够,过于繁琐
- 可视化之前处理数据异常,主可视化大屏正常,四个专业可视化大屏皆存在数据冗余情况,对最终数据分析评价有一定影响
可视化大屏展示
主可视化大屏
可视化结果评价、分析
- 从工作经验数据分析得到的结果上,我们可以明显看到现在就业的需求基本都是,有相关工作经验的人员优先录用。
- 关于此条,毕业生、应届生可利用假期时间进行一些社会实践、暑假工来丰富自己的个人简历,从而弥补在工作经验上与他人的差距
- 同时,我们这一类(在校/应届)需求量较少,可预测大多数计算机科学类岗位录用毕业生或实习生岗位也是类似情况。
- 关于此条,毕业生可放宽视野,不局限于本专业专业内容的学习,利用空闲时间学习其它计算机科学类专业的专业课程,丰富自己的专业知识,以此来增加适合自己的就业岗位**
- 当然,从工作经验的数据分析上来看,经验不限也占了大部分招聘信息,这对我们的实习、就业都有一定的优势。
- 关于此条,工作经验不限降低了实习生,毕业生的就业压力,但一定意义上也增加了就业压力,工作经验的不限制导致岗位面试人员增加,缓解方法与第一条类似
- 从工作地点上分析,可以看到大多数的招聘信息都在主城区、或者是一些开发程度比较高的地区,昆明的同学大多数也是居住在这些区域。
- 关于此条,如果工作地点在开发程度较高的区域,那么在一定意义上,对家不在本地的同学有一定住宿方面的帮助,这一类地区租房相对较多。对所有工作人员(包括家在本地的实习生、应届生),这一类区域交通方便,对上下班的效率、生活质量都有一定量的提高
- 从学历要求上来看,学历为本科的同学依旧是录用的重点范围,但学历是专科的同学的招聘信息也并不少,两类差距在一倍左右,属于可接受范围。
- 关于此条,在hr看来,学历高并不意味着工作能力强,而是在一定意义上代表着学习,自律等能力,专科生可以通过其它方式来证明自己这一类的能力,例如:考取一些专业知识证书,或者是与专业不相关的证书。从而证明自己的学习能力较强。当然,学历是一块敲门砖,专科生参加专升本考试也是必要的。
- 工作薪资同样是人们关注的重点之一,从主大屏的数据分析来看,大数据专业最低工资大于4000的岗位较多,但从汇总数据来看,大多数招聘信息的最低工资都低于4000,但这是最低工资,并不代表工资上限。
- 关于此条,在本团队的理念中,毕业生、应届生的专业知识并不完善,工薪待遇与自身所掌握的技术成正比,或者与工作内容的辛劳程度成正比,例如:掌握一项关键技术,且只有少数人知道这项技术的工程师、在电子厂一个月加班很多天的员工;所以本团队的建议是:寻找能够支持自己经济独立的职位的同时,能够保证自己的专业知识有所提升,这样的发展能够保证未来遇到预期外变化时,能够有一定的应对能力。
- 从词云上看,可以清楚的了解到,除了一些教育岗位之外,大多数岗位都是项目开发,项目运维,软件设计,算法学习类岗位,可见计算机科学类的同学就业前景可观。
- 关于此条,计算机科学类专业中,除了职业教育外,大多数岗位都是技术类岗位,我们应该充分丰富自己的专业知识,保持技术更新.
项目总结
本项目耗时共:22天,采用当前新兴技术:Appache Echarts|Python 等进行。在充分运用专业知识的情况下,让大家了解到当前(2022)应届生、毕业生的就业情况。
在此次报告中,虽然存在预期之外的数据冗余情况,但仅仅只是造成了微量偏差,对整体局势影响属于可控范围
在此次报告中,我们可以对当前就业形势(仅上述四个专业)有如下了解:
- **工作薪资:**昆明市相对于云南整体来说,开发程度较高,但在与全国各地城市相比,又处于一个相对落后的位置,大多就业岗位最低工资低于四千,但最低工资并不是整体工资的上限,所以昆明市岗位的薪资仍处于可接受范围
- 工作地点:与上条描述相同,就业岗位大多集中在昆明市开发程度较高的区域,便于交通,住房。同时在一定意义上,也丰富了我们的娱乐生活。
- 工作经验:在可视化大屏中我们可以看到保持自身技术的新颖是关键,大多数招聘信息要求有3年左右的工作经验,而并不是工作时间越长越高,所以我们需要在工作中保持学习,更新自身技术
- 学历:学历是一块敲门砖,如果有机会,提高自身学历也是有必要的,当然,从数据分析中我们可以看到的是本科和专科招聘信息的数量差距属于可接受范围,所以,专科应届生、专科毕业生找到一份心意的工作难度不大。
对于此次报告,本团队有以下建议:
- 提升学历,在有条件的情况下进行专升本考试
- 保持自身技术新颖,计算机科学类技术日新月异,对于每个该行业的职员来说保持自身技术处于前线是必要的
- 相关或不相关证书的考取,考取一些相关证书来证明自己的技术,同时也可用于丰富自身经历,增加简历内容,证明自己的能力
注:数据及分析报告仅供参考,切勿带入实际
2022大作业项目报告相关推荐
- java大作业开题报告_c++大作业选题报告.docx
c++大作业选题报告.docx 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: [双雄]--摸牌阶段,你可以选择放弃摸牌并进行一次判定:你获得 ...
- nodejs爬虫大作业项目
第一个爬虫项目完成后,在mysql已经有了一张表格存储爬取到的三个网站的数据.现在大作业要求如下: 首先要对这个过程中使用的一些包进行安装,也就是在项目文件的终端中输入 npm install 将安装 ...
- 深圳大学计算机图形学实验4.1,深圳大学计算机图形学大作业实验报告.doc
深圳大学计算机图形学大作业实验报告 深 圳 大 学 实 验 报 告 实验课程名称: 计算机图形学 实验项目名称: 计算机期末综合大作业 学院: 计算机与软件 专业: 计算机科学与技术 报告人: 班级: ...
- python数据分析大作业-python大作业实验报告
大学计算机基础 (理工)大作业 --暨南大学南校区生活指南系统 G108 甘颖欣 熊梦娜 翁婉晖 梁绮婷 李嘉顺 2015-1-3 目录 目录 ............................ ...
- 网页编程课程大作业实验报告HTML5 、CSS5 、JavaScript
网页编程课程大作业实验报告 课程名称 网页编程 实验成绩 计算机学院制 一.实验内容与要求 利用HTML5 .CSS5 .JavaScript等知识,按照特定的主题制作一个完整的网站. 二.网站名称以 ...
- 象棋快棋赛电子裁判计时器的设计——《数字逻辑与数字系统设计》实验大作业设计报告
数电Github资源 <数字逻辑与数字系统设计>实验大作业设计报告 实验题目 象棋快棋赛电子裁判计时器的设计 实验难度 ★★ 成员 姓名 班号 学号 1 郭茁宁 1837101 11837 ...
- c语言大作业开题报告,c语言开题报告
本栏目为关于c语言开题报告和开题报告的论文范文,免费给你写作c语言大作业开题报告提供相关文献资料. 摘要:在一套试卷中,重复题问题是影响考试质量的一个重要因素.该文针對C语言试卷中选择题间易出现重复题 ...
- 个人作业项目报告(三)输出结果及测试样例的结果(附代码)
代码调用图 代码调用图的图例:(感谢刘泽@kfk的vs2015企业版的强大功能) 输出结果 因为助教给的程序是在WIndows平台上运行代码得到的结果,所以主要放出的是Windows平台下的结果,Li ...
- 简讯 | 《数智安全与标准化》大作业中期报告
11月4日下午,在大数据系统软件国家工程研究中心举行"<数智安全与标准化>大作业中期报告".报告通过线上与线下相结合进行,由<数智安全与标准化>授课教师金涛 ...
最新文章
- R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(改变图例位置)实战(dot plot)
- 《数学之美》第26章 维特比和他的维特比算法
- 一种基于FPGA 的1080p 高清多摄像头全景视频拼接的泊车(机)
- 陈桥五笔用户编号获取_用户群组分析
- 京东到家基于netty与websocket的实践
- 一行代码揭开CPU执行原理
- 翻翻看 类型html5,3款容易上手的HTML5编辑工具推荐~
- asm 查看 数据文件 修改 时间_Oracle的ASM介绍及管理
- 谷歌浏览器登录不了账号_谷歌浏览器使用分享(可谷歌账号登录)之谷歌账号登录...
- odis工程师一键导入导出匹配数据信息功能_机械重复做了这么久,才发现竟然可以批量用户导入导出...
- Spring Boot/Cloud 背后豪华的研发团队
- 常用指令备忘录----持续更新
- 硬盘(U盘)被误格式化(删除),重要的文件如何恢复?
- PHP可以通过什么组件上传大文件
- 配置好网络文件还是连不上外网
- 格雷码和二进制相互转换
- BlackBerry7290上网步骤
- excel单元格内的数值向上、向下取整
- 安卓多人聊天室服务端
- 计算机上设置通讯参数,西门子S7-200PLC编程通信口参数设置