Python数据分析及可视化——以拉勾网数据分析岗位为例


对上篇文章( 点击回顾)爬取的拉勾网数据分析岗位招聘信息进行数据分析和可视化操作。

1. 导入工具库

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
from wordcloud import WordCloud

2. 读取文件

# 添加表头,保存为新文件(避免污染元数据)
df = pd.read_csv('拉勾复现.csv',names=['岗位','公司','行业','城市','薪水','学历要求','职位性质'])
df.to_csv('数据分析招聘信息.csv',index=False)

# 读取文件
df = pd.read_csv('数据分析招聘信息.csv')
df

在这里插入图片描述

3. 岗位城市分布图

# 获取作图数据
city = list(df['城市'].value_counts().index)
cityNumber = list(df['城市'].value_counts())

# 设置中文字体
plt.rcParams['font.family'] = ['Fangsong']

# 设置画布大小
plt.figure(figsize=(30,15))

#设置坐标刻度字体大小
plt.xticks(fontsize=25)
plt.yticks(fontsize=25)

#画柱状图
plt.bar(city,cityNumber)
plt.title('岗位城市分布图',fontsize=40)
plt.xlabel('城市',fontsize=40)
plt.ylabel('岗位数',fontsize=40)
plt.show()

在这里插入图片描述
可以看到,招聘数量最多的四个城市为:北京、上海、深圳和广州。

4. 学历要求百分图

education = list(df['学历要求'].value_counts().index)
educationNumber = list(df['学历要求'].value_counts())

# 设置画布大小
plt.figure(figsize=(10,10))

#画柱状图
plt.pie(educationNumber,labels=education,explode=(0.1,0,0,0),colors=['lightskyblue','yellow','green','orange'],textprops = {'fontsize':30},autopct='%1.2f%%')
plt.title('学历要求占比图',fontsize=30)
plt.show()

在这里插入图片描述
数据分析岗对学历有一定要求,本科及以上的岗位占比九成以上。

5. 企业词云图

# 制作词频
company = list(df['公司'].value_counts().index)
companyNumber = list(df['公司'].value_counts())
word_frequency = dict(zip(company,companyNumber))

# 词云
wordcloud = WordCloud(font_path='C:/Windows/Fonts/simfang.ttf',mode='RGBA',background_color=None,width=1000,height=800).fit_words(word_frequency)

# 画图
plt.figure(figsize=(15,10))
plt.imshow(wordcloud)
plt.axis('off')
plt.show() 

# 保存到文件
wordcloud.to_file('招聘企业词云图.png')

在这里插入图片描述
由词云图可以看出,招聘岗位数目比较多的企业有:字节跳动、快手、美团、恒泰投资和拉勾网等等,其中互联网需求最旺盛。

6. 各城市平均薪资对比图

# 薪水处理函数
def pre_salary(data):
    min = int(data.split('-')[0][:-1])
    max = int(data.split('-')[1][:-1])
    return (min+max)*500

# 仅统计全职性质岗位的薪资
df = df[df['职位性质'] == '全职']

# 数据处理
df_1  = pd.DataFrame(df['城市'])
df_2 = df['薪水'].apply(pre_salary)
df_aver = df_1.assign(平均薪水 = df_2)
df_aver = df_aver.groupby('城市').agg({'平均薪水':'mean'})
df_aver = df_aver.sort_values('平均薪水',ascending=False)

# 获取作图数据
city = list(df_aver.index)
salary_aver = list(df_aver['平均薪水'])

# 画图
plt.figure(figsize = (30,15))
plt.bar(city,salary_aver)
plt.title('各城市数据分析岗平均薪资对比图',fontsize = 40)
plt.xlabel('城市',fontsize = 40)
plt.ylabel('薪资',fontsize = 40)
plt.xticks(fontsize = 25)
plt.yticks(fontsize = 25)
plt.show()

在这里插入图片描述
令人意外的是,平均薪水前四城市为:北京、厦门、上海和深圳,广州不仅掉出前四,甚至只排到第八。原因一方面可能是,广州薪水确实比较低;另一方面可能是,收集数据的时候,由于拉勾只动态展示30页数据,而这其中广州招聘岗位给的薪水较低。从严谨程度出发,应进行多次数据采集再求均值。不过这篇文章重点在于数据处理、分析和可视化操作,从这个方面来看,目的已达成。

  • 11
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值