拉勾网数据分析师利用python分析
程序员文章站
2022-05-01 22:33:39
...
目的:数据分析师是一个什么样的岗位?它的工资和薪酬是多少?哪类公司更会招聘数据分析师?
主要内容包括数据读取,数据概述,数据清洗和整理,分析和可视化
首先载入数据,此数据是18年3月份在拉勾网上爬取的有关数据分析师的职位信息
import numpy as np
import pandas as pd
data = pd.read_csv(r'D:\Users\Desktop\jobdata.csv')
data
因有些信息此次分析并不会用到,只选取需要的信息,进行后续分析
data = data[['city','positionName','companyShortName','workYear','education','companyLabelList','companySize','financeStage','industryField','salary','positionAdvantage','firstType','secondType']]
data
进行去重:drop_duplicates函数通过subset参数选择根据positionName和companyShortName 这两列为基准去重,keep参数则是保留方式,first是保留第一个,删除后余重复值。通过结果发现公司和职位重复的数量有将近1000个
data = data.drop_duplicates(subset = ['positionName','companyShortName'],keep = 'first')
data
对数据进行快速的浏览,列举出了数据集拥有的各类字段,去重后一共有3575个,其中companyLabelList存在为空的情况,但不影响后续分析
data.info()
接下来对salary薪资字段进行处理,计算出薪资下限以及薪资上限,来求平均值,虽然平均值并不能代表现实的薪资情况,但在一定程度上可作为参考
def get_bottom(salary):
position = salary.find('-')
bottomsalary = salary[:position-1]
return bottomsalary
def get_top(salary):
position = salary.find('-')
length = len(salary)
topsalary = salary[position+1:length-1]
return topsalary
data['bottomsalary'] = data.salary.apply(get_bottom)
data['bottomsalary'].astype('int')
将bottomSalary转换为数字,可以看到薪资下限被截取出来了, 薪资上限同理data['topsalary'] = data.salary.apply(get_top)
data['topsalary'].astype('int')
通过最高和最低工资求取平均工资
data.bottomsalary = data['bottomsalary'].astype('int')
data.topsalary = data['topsalary'].astype('int')
data['avgsalary'] = data.apply(lambda x:(x.bottomsalary + x.topsalary)/2, axis =1)
data.avgsalary.describe()
数据分析师的薪资的平均数是18.5k,中位数是17.5k,两者相差不大,最大薪资在90k是数据科学家或者大数据总监级别的,最小薪资只有1.5k是实习生或者兼职岗位,标准差在9.6k,有一定的波动性,大部分数据分析师薪资在18.5±9.6k之间。
data.city.value_counts()
data.groupby('city').avgsalary.mean().sort_values(ascending = False)
以上可以看到北京的数据分析师类需求远远高于其他城市,只比上海,深圳,杭州和广州的需求总和低一点,北京的平均工资也高于其他城市;作为新一线城市的杭州对数据分析师需求高于一线城市广州,平均薪资也高于上海、深圳,看来在杭州找数据分析师的工作也是个不错的选择,哈哈
进行简单的可视化
import matplotlib.pyplot as plt
%matplotlib inline
data.avgsalary.plot.hist(bins=20)
数据分布同时呈现双峰和右偏型的分布,双峰型可能是因为混合了一二三线城市的数据,而右偏型是因为不可能所有的数据分析师都可以拿高工资
data1= data.pivot_table(values= 'avgsalary',index= 'education',columns='city')
data1.unstack()
得到各城市对不同学历的数据分析师的平均薪资
data.groupby(['city','companyShortName']).avgsalary.agg(['count','mean']).sort_values(by = 'count',ascending = False)
招聘数量最多的公司分别位于哪些城市的哪些公司
def top_n(data,n = 5):
counts = data.value_counts()
return counts.sort_values(ascending = False)[:n]
data.groupby('city').companyShortName.apply(top_n)
不同城市,招聘数据分析师需求前5的公司
data.groupby('city').positionName.apply(top_n)
不同城市,数据分析类职位招聘数前5的
暂时就先写这么多了
上一篇: 每天一点C / 位和字节
下一篇: 最新ES8特性概述