Python数据分析实战:以数据分析岗为例,探索行业与薪资关联性

B站影视 欧美电影 2025-04-07 17:57 1

摘要:金三银四,数据分析师成为众多行业竞相追逐的热门岗位,想知道如何在这个领域精准发力、脱颖而出吗?今天,我将以 BOSS 直聘上的数据为样本,借助 Python 强大的数据分析能力,深度剖析各个行业与薪资关联性分析,下面一起学习!

金三银四,数据分析师成为众多行业竞相追逐的热门岗位,想知道如何在这个领域精准发力、脱颖而出吗?今天,我将以 BOSS 直聘上的数据为样本,借助 Python 强大的数据分析能力,深度剖析各个行业与薪资关联性分析,下面一起学习!

1.数据准备

首先,我们需要导入必要的库并加载数据。

import pandas as pdimport numpy as npfrom pyecharts import options as optsfrom pyecharts.charts import Bar, Pie, Boxplot, WordCloud, Mapfrom pyecharts.globals import SymbolTypeimport re# 加载数据df = pd.read_excel('/home/mw/project/BOSS直聘数据分析师职位.xlsx')# 查看数据概览df.head(3)# 查看数据信息df.info

2. 数据清洗

我们需要对数据进行清洗,特别是薪资范围和经验要求字段。

def process_salary(salary):if not isinstance(salary, str):return np.nan# 处理日薪if '元/天' in salary:# 提取第一个数值(-前面的数值)daily = float(re.findall(r'(\d+\.?\d*)', salary.split('-')[0])[0])return daily * 30 / 1000 # 转换为月薪(千元),按30天计算# 处理时薪elif '元/时' in salary:# 提取第一个数值(-前面的数值)hourly = float(re.findall(r'(\d+\.?\d*)', salary.split('-')[0])[0])return hourly * 8 * 30 / 1000 # 转换为月薪(千元),8小时/天,30天/月# 处理月薪elif 'K' in salary or 'k' in salary:# 提取第一个数值(-前面的数值)monthly = float(re.findall(r'(\d+\.?\d*)', salary.split('-')[0])[0])# 处理16薪等情况if '薪' in salary:months = float(re.findall(r'(\d+)薪', salary)[0])return monthly * months / 12return monthly# 处理纯数字月薪(如10000-15000)elif re.search(r'\d+-\d+', salary):# 提取第一个数值(-前面的数值)monthly = float(re.findall(r'(\d+\.?\d*)', salary.split('-')[0])[0])return monthly / 1000 # 转换为千元# 其他情况(如纯数字)else:try:return float(re.findall(r'(\d+\.?\d*)', salary)[0]) / 1000 # 转换为千元except:return np.nan# 应用处理函数df['薪资月薪(K)'] = df['薪资范围'].apply(process_salary)# 显示前3行结果df.head(3)

3.行业与薪资关联性分析

分析不同行业的数据分析师岗位薪资是否存在显著差异。

# 按公司类型分组统计薪资industry_salary = df.groupby('公司类型')['薪资月薪(K)'].agg(['mean', 'median', 'count']).sort_values('mean', ascending=False)# 筛选至少有5个样本的行业industry_salary = industry_salary[industry_salary['count'] >= 5]# 可视化bar1 = (Bar.add_xaxis(industry_salary.index.tolist).add_yaxis("薪资月薪(K)", industry_salary['mean'].round(1).tolist).set_global_opts(title_opts=opts.TitleOpts(title="不同行业数据分析师平均薪资"),yaxis_opts=opts.AxisOpts(name="薪资(千元)"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),))bar1.render_notebook

由柱形图可以看出游戏、互联网、电子商务行业的平均月薪资最高,分别达到约21.5k、20.4k和16.6k,传统行业如医疗健康、广告公关会展的薪资相对较低,差不多在11K左右,互联网相关行业(游戏、互联网、电子商务)普遍高于其他行业,在工作选择时可以更倾向于互联网公司的数据分析岗。

来源:大话数据分析

相关推荐