# 构造想要分析的目标岗位,做一个数据筛选
target_job =['数据分析','电商运营','新媒体运营','会计','财务经理','运营专员','销售助理','人事主管','网络推广专员','市场专员']
index =[df["岗位名"].str.count(i)for i in target_job]
index = np.array(index).sum(axis=0)>0
job_info = df[index]
job_info.head()
1
2
3
4
5
6
# 公司类型 字段处理# print(job_info['公司类型'].value_counts())
company_types =['民营','合资','外资','事业单位','上市','国企','非营利组织','创业','外企代表处','政府机关']
company_types = np.array(company_types)defrename(x=None, company_types=company_types):
name =[i in x for i in company_types]ifsum(name)>0:return company_types[name][0]else:return x
job_info['公司类型']= job_info['公司类型'].apply(rename)print(job_info['公司类型'].value_counts())
job_info.head()
1
2
3
4
5
6
7
8
9
10
11
12
13
最终效果
3、数据可视化(pyecharts)
将清洗好的数据进行导入
import pandas as pd
df = pd.read_excel('after_cleaning_data.xlsx')
df.head()
1
2
3
4
部分代码展示------制作图表
饼图 不同学历分布
from pyecharts.charts import Pie
# 饼图 不同学历分布
educations = df['学历'].value_counts()
educations_index = educations.index.tolist()
educations_values = educations.values.tolist()# educations_list = [(i,j) for i,j in zip(educations_index,educations_values)]# educations_list # for test
pie1 =(
Pie(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)).add('',data_pair=[(i,j)for i,j inzip(educations_index,educations_values)]).set_global_opts(title_opts={'text':'招收岗位学历分布图'},toolbox_opts=opts.ToolboxOpts(is_show=True),
legend_opts=opts.LegendOpts(pos_bottom='5%')))
pie1.render_notebook()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
不同公司类型的工资水平
# 不同公司类型的工资水平
salary_level = df.groupby("公司类型")["工资水平"].mean()# print(type(salary_level))# Series转换为DataFrame
type_salary=pd.DataFrame({'公司类型':salary_level.index,'平均工资':salary_level.values})
type_salary['平均工资']= type_salary['平均工资'].apply(lambda x :round(x))# type_salary for test
bar3 =(
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)).add_xaxis(type_salary['公司类型'].values.tolist()).add_yaxis(series_name='不同类型公司的工资水平',yaxis_data=type_salary['平均工资'].values.tolist()).set_global_opts(toolbox_opts=opts.ToolboxOpts(is_show=True),
title_opts={'text':'不同公司类型的工资水平图'},
xaxis_opts=opts.AxisOpts(axislabel_opts={'interval':'0'})))
bar3.render_notebook()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
工作经验与工资水平折线图
from pyecharts.charts import Line
bar5 =(
Line(init_opts=opts.InitOpts(theme=ThemeType.DARK)).add_xaxis(ex_sa['工作经验'].values.tolist()).add_yaxis('工资水平',y_axis=ex_sa['工资水平'].values.tolist()).set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts={'interval':'0'}),
toolbox_opts=opts.ToolboxOpts(is_show=True),
title_opts={'text':'工作经验与工资水平折线图'}))
bar5.render_notebook()