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

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

1.数据准备

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

import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar, Pie, Boxplot, WordCloud, Map
from pyecharts.globals import SymbolType
import 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 / 12
        return 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左右,互联网相关行业(游戏、互联网、电子商务)普遍高于其他行业,在工作选择时可以更倾向于互联网公司的数据分析岗。

相关文章

Python数据分析(四)

现在上手一个数据分析实际案例: 从数据结果集本身入手,使用通用性检查分析数据+业务规则校验是否有异常,最终形成分析报告,若有问题及时做出人工干预 背景:数据最终到应用层面,会经过很多前面很多节点处理...

今天我学习了Python数据统计分析教程,把笔记分享出来

一、环境搭建1. 安装 Python :从官网下载适合你操作系统的版本并安装,建议勾选 “Add Python to PATH” 选项。2. 安装相关库 :常用的有 NumPy(数值计算)、Panda...

Python数据分析(三)

续接Python分析,本篇主要是关于python中一些高阶函数的应用以下是针对你提到的几个高级知识点(数据合并、apply、iterrows、agg、map)的详细解释和案例,帮助你系统学习和理解这些...

Python 数据分析必学的 10 个核心库:从基础操作到高阶建模全攻略

在Python数据分析领域,掌握核心工具库能让你效率倍增。本文精选10个高实用性库,结合代码示例详解从数据处理到机器学习的全流程操作,助你快速进阶数据分析高手。一、Pandas:结构化数据处理的全能选...

工业数据分析工具的力量:用Python释放数据的潜能

阅读文章前辛苦您点下“关注”,方便讨论和分享,为了回馈您的支持,我将每日更新优质内容。如需转载请附上本文源链接!工业数据是现代制造业和工程领域的重要资源。从设备的实时运行指标到生产线的整体效率数据,工...