文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.前端设计师数据采集
    • 2.读取数据,并分析
    • 3.结果
  • 总结

前言

1.请爬取前程无忧网站,城市:广州、上海、北京、深圳、武汉,前端工程师的岗位数据,数据包含岗位名称、公司名称、公司性质、福利待遇、薪酬。
2.请分析出五个城市,前端工程师的平均工资水平。
3.用柱状图展示五个城市前端工程师平均工资水平的情况


提示:以下是本篇文章正文内容,下面案例可供参考

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.前端设计师数据采集

代码如下(示例):

import requests
import json
import pandas as pd
import time
import csv
workname='前端工程师'
city='广州','上海','北京','深圳','武汉'
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36'
,'Accept':'application/json, text/javascript, */*; q=0.01','X-Requested-With':'XMLHttpRequest'
}
jobs=[]
jobs_count=1  #job数量
for page_index in range(1,20):url = "https://search.51job.com/list\/030200%252c020000%252c010000%252c040000%252c180200\,000000,0000,00,9,99,{},2,{}.html?\lang=c&postchannel=0000&workyear=99&cotype=99\&degreefrom=99&jobterm=99&companysize=99&\ord_field=0&dibiaoid=0&line=&welfare=".format(workname,page_index)resp=requests.get(url,headers=header)#把字符串解析成json格式json_jobs=json.loads(resp.text)jobs_list=json_jobs['engine_search_result']for job in jobs_list:job_dict={}job_dict['job_name']=job['job_name']job_dict['company_name']=job['company_name']job_dict['providesalary']=job['providesalary_text']job_dict['workarea']= job['workarea_text']job_dict['companytype'] = job['companytype_text']job_dict['jobwelf'] = job['jobwelf']jobs.append(job_dict)print("已抓取{}条数据".format(jobs_count))jobs_count+=1print("正在拼命抓取数据........")time.sleep(3)  #停顿3秒,防止频繁访问#保存到本地文件  csv文件,csv常用的数据集存储格式文件
df_jobs=pd.DataFrame(jobs)   #把列表转为DataFrame(数据表格格式)
df_jobs.to_csv("jobs.csv",encoding='utf_8_sig')
print("保存成功,共保存{}条数据".format(len(jobs)))

2.读取数据,并分析

代码如下(示例):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt#导入数据
df_jobs=pd.read_csv('jobs.csv',index_col=0)  #Series   DataFrame
print(df_jobs.info())
#把providesalary非空的筛选出来,赋值df_jobs
df_jobs=df_jobs[df_jobs['providesalary'].notna()]
#把workarea为异地招聘的剔除(筛选不是异地招聘的出来)
df_jobs=df_jobs[df_jobs['workarea']!='异地招聘']
#提起关心的有效列workarea,providesalary
df_jobs=df_jobs[['workarea','providesalary']]
def get_city(city_text):#分为有-的城市没有-的城市city=''if "-" in city_text:city=city_text.split("-")[0]else:city=city_textreturn citydf_jobs['workcity']=df_jobs['workarea'].map(get_city)#处理薪资
def get_salary(salary_text):#统一变成   千/月salary=0.#万/月if salary_text.endswith("万/月"):salary_text=salary_text.replace("万/月","")if "-" in salary_text:min=salary_text.split("-")[0]max=salary_text.split("-")[1]salary=(float(min)+float(max))/2*10#千/月if salary_text.endswith("千/月"):salary_text = salary_text.replace("千/月", "")if "-" in salary_text:min = salary_text.split("-")[0]max = salary_text.split("-")[1]salary = (float(min)+float(max)) / 2#万/年if salary_text.endswith("万/年"):salary_text = salary_text.replace("万/年", "")if "-" in salary_text:min = salary_text.split("-")[0]max = salary_text.split("-")[1]salary = (float(min)+float(max))/ 2*10/12#元/天if salary_text.endswith("元/天 "):salary_text = salary_text.replace("元/天 ", "")salary=salary_text*22   #22工作日为一个月return salary
df_jobs['workarea']=df_jobs['workarea'].map(get_city)
df_jobs['salary']=df_jobs['providesalary'].map(get_salary)
#开始分组
grouped=df_jobs.groupby('workarea')
#聚合统计,求平均数salary
mean_salary=grouped['salary'].agg(np.mean)
df_mean_salary=pd.DataFrame(mean_salary)
print(list(grouped))
print(df_mean_salary)
print(list(df_mean_salary.index))#显示中文标签
font = {'family':'Microsoft Yahei', 'size' : '10' }
plt.rc("font",**font)
#设计柱状图
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
#横坐标纵坐标及标题
ax.set_ylabel('平均工资/千元')
ax.set_xlabel('城市')
ax.set_title('前端工程师平均工资水平的情况')
plt.bar(range(5),df_mean_salary['salary'],tick_label=df_mean_salary.index)
#删除边框
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
#加入透明网格  透明度0.4
ax.grid(alpha=0.4)
plt.show()

3.结果

总结

提示:这里对文章进行总结:
一、爬取网页信息
1、User-Agent:访问的浏览器(要加上否则会被当成爬虫程序)
2、Python3 中可以使用 json 模块来对 JSON 数据进行编解码
3、DataFrame 是由多种类型的列构成的二维标签数据结构,支持多种类型的数据
4、to_csv()保存csv格式文件
二、分析数据
1、read_csv()读取csv格式文件
2、GroupBy分组与聚合
3、利用agg进行简单的聚合,例如求平均数:grouped[‘salary’].agg(np.mean)
三、数据可视化
1、在任何绘图之前,都需要一个Figure对象
2、xlabel,ylabel,title设置坐标轴标签、标题
3、解决matplotlib不支持中文的问题,font = {‘family’:‘Microsoft Yahei’, ‘size’ : ‘10’ }
plt.rc(“font”,**font)
4、将 y 与 x 绘制为线和/或标记函数为 plot()
5、显示,plt.show()

前程无忧招聘网职位薪酬数据分析相关推荐

  1. 用python爬取前程无忧招聘网

    直接上代码了,相比前篇文章智联招聘网的数据,前程无忧网的数据可以爬取很多. 网址:https://search.51job.com/list/040000,000000,0000,00,9,99,%2 ...

  2. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...

  3. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

  4. 51job(前程无忧官网)1万条招聘信息的爬取

    以51job网上爬取的一万条电商类招聘信息为样本,具体分析该行业的就业前景.工作地点.平均薪资和任职要求等 本文主要通过词云图和可视化图表对数据进行展示描述 1.先上样本信息图(由于太多,只截了一部分 ...

  5. 招聘网站分析-智联招聘网的爬虫设计与实现

    爬虫文件 原理 1.分析 智联招聘网是招聘网站中爬取难度最高的网站.为了减轻爬虫对网站运营的影响,要求用户必须注册登录,否则提示登录后才能进行信息检索. 智联招聘网的页面布局以及列表页请求url.注册 ...

  6. Crawler:爬虫之基于https+parse库实现爬取国内某知名招聘网上海、北京关于区块链职位的求职信息

    Crawler:爬虫之基于https+parse库实现爬取国内某知名招聘网上海.北京关于区块链职位的求职信息 目录 输出结果 1.上海区块链职位 2.北京区块链职位 设计思路 核心代码 输出结果 1. ...

  7. 爬取前程无忧51job海量职位信息

    准备阶段 前程无忧官网:https://www.51job.com/ 本文对职位的爬取以python职位为例. 现在网站的反爬措施比较强,但可以用selenium进行爬取,虽然速度相对较慢但是爬取的方 ...

  8. python数据分析的发展前景_Python+BI分析5000条招聘数据,原来数据分析工作在这儿最好找...

    这两年的大数据热潮带火了数据分析这个职业,很多人想转行干数据分析,但是又不知道现在这个行业的求职环境和前景如何,动了心却不敢贸然行动. 前两天有个干运营的妹子找我聊天,也是问我数据分析岗位前景的问题, ...

  9. “前程无忧”招聘数据预处理——(2)

    毕业设计第二弹 -- "前程无忧"招聘结构化数据预处理 操作系统: Win 10 操作环境: Jupyter Notebook (Anaconda) 存储路径: 电脑D盘,csv格 ...

最新文章

  1. 人脸识别,现在连动漫角色都不放过
  2. 不只是相关:基于真理共识论的社区问答可信答案选择新方法
  3. 弱,弱,最弱,利用专业参考来利用垃圾收集器
  4. [css] inline、block、inline-block这三个属性值有什么区别?
  5. 1 分钟抗住 10 亿请求!某些 App 是怎么做到的? | 原力计划
  6. 16kb等于多少b_一篇文章讲透MySQL为什么要用B+树实现索引
  7. 压缩解压缩工具之WinRAR
  8. win10u盘被写保护怎么解除_如何去掉写保护?tf磁盘被写保护?win10如何去掉写保护?【U盘写保护怎么去掉?】Microsoft Windows...
  9. 利用photoshopcs6将gif格式图片变为背景透明
  10. spring源码构建时缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar
  11. 博士申请 | 澳大利亚麦考瑞大学王岩教授招收机器学习方向全奖博士生
  12. 中国大学生实习大数据分析报告
  13. 广东中山电信DNS地址 (铁通/网通)
  14. Markdown语法-从基础到进阶
  15. java 调用foxmail_JavaMail(JAVA邮件服务) API详解
  16. 【安卓逆向】 浦X银行签名校验,逆向工程师绝不认输
  17. 高中计算机学考什么时候,江苏高考 | 2019 年高中学业水平考试和信息技术考试时间出炉!...
  18. kafka 学习 非常详细的经典教程
  19. 第101篇 盲盒智能合约(ERC1155)
  20. Cassandra - A Decentralized Structured Storage System

热门文章

  1. Python制作快递查询系统
  2. 51单片机电路原理图_10个定时器精选电路方案带你学习时钟脉冲的工作方式
  3. html吃豆豆代码,超萌css制作吃豆豆加载效果
  4. linux 清理废弃进程,Linux 痕迹清理 隐藏进程
  5. 主板h110能装linux吗_H110冒充H310 老主板居然也能上八代酷睿
  6. [NSSCTF]roud4 web
  7. 【软考软件评测师】2014年下案例分析历年真题
  8. 2019深圳学区房划分_查查吧学区房地图
  9. mate40——出人意料的软文营销
  10. 好时巧克力公司加入区块链广告联盟