社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

一城山水 • 3 年前 • 486 次点击  

本文数据为博主自己爬取

最新 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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

# 公司类型 字段处理
# 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()
  • 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 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()
  • 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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/72403
 
486 次点击