飞道的博客

Python做出来的数据可视化真香!!

499人阅读  评论(0)

本文数据为博主自己爬取

最新 Python3 爬取前程无忧招聘网 mysql和excel 保存数据

学完可视化,准备自行爬取数据,自行分析。在实践中获得书上没有的知识,源于书本,高于书本。

1、数据预处理

将存储在mysql 中的数据进行数据预处理

  • 在jupyter notebook中进行调试


导出至excel 获得初步的数据结果

2、进行数据清洗

部分代码展示

# 构造想要分析的目标岗位,做一个数据筛选
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()

# 公司类型 字段处理
# print(job_info['公司类型'].value_counts())  
company_types = ['民营','合资','外资','事业单位','上市','国企','非营利组织','创业','外企代表处','政府机关']
company_types = np.array(company_types)
def rename(x=None, company_types=company_types):
    name = [i in x for i in company_types]
    if sum(name)>0:
        return company_types[name][0]
    else:
        return x
job_info['公司类型'] = job_info['公司类型'].apply(rename)
print(job_info['公司类型'].value_counts())
job_info.head()


最终效果

3、数据可视化(pyecharts)


  • 将清洗好的数据进行导入
import pandas as pd

df = pd.read_excel('after_cleaning_data.xlsx')
df.head()


部分代码展示------制作图表

  • 饼图 不同学历分布
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 in zip(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()

  • 不同公司类型的工资水平
# 不同公司类型的工资水平
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()

  • 工作经验与工资水平折线图
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()

本人目前为了加强可视化,数据清洗能力,会自行爬取数据并进行可视化分析,如果有小伙伴和我一样,关注我,会有新的案例,一起进步。

本文代码可以共享,需要请评论或私聊


转载:https://blog.csdn.net/weixin_45215649/article/details/107939325
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场