数据分析——人力资源

业务背景

该数据为一家互联网科技公司的职工信息表,新入职的人力资源负责人想对该份数据进行探索性分析,以便快速了解公司员工情况。

分析目标

  1. 人力资源结构角度
  • 人员岗位分布
  • 管理人员比例
  • 教育情况分布
  • 人员年龄结构
  1. 人力资源运作角度
  • 员工离职率
  • 内部变动率

行业介绍

  1. 互联网公司职级划分
    (1)岗位序列是针对岗位性质和要求相近的岗位进行分类。公司的岗位序列分为两大类∶管理序列(M),专业序列(P)。
  • 管理序列(Management 简称 M 类)∶ 适用于从事管理工作,具有人员管理权限(不包括师徒关系、业务辅导关系),带领团队运作指定业务的岗位。
  • 专业序列(Professional 简称P类)∶ 适用于从事产品设计、运营、市场、销售、人事、财务、信息技术服务工作等岗位。
    (2)职等
  • 定义∶ 指针对员工承担责任、知识经验和技能多寡等能力差异而进行的划分。
  • 划分∶ M 序列和 P序列职等以 BAND 划分,共 12 等,由低到高分别为 BAND1至 BAND12。
    在这里插入图片描述
  1. 人力资本指标
    在这里插入图片描述
    在这里插入图片描述

数据分析

  1. 导包
import pandas as pd
import numpy as np

import warnings
warnings.filterwarnings("ignore")

import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"] # 指定默认字体
mpl.rcParams["axes.unicode_minus"] = False # 解决保存图像时负号问题
  1. 导入数据
data = pd.read_excel("HR_comma_sep.xlsx")
data.shape # 查看数据行列数
data.info() # 查看数据基本信息
data.describe() # 查看数据基本描述
data.head() # 查看前5行数据

在这里插入图片描述
3. 数据处理
3.1 清洗"级别"字段:M,P–>职称

data["级别"].value_counts()
data["职称"] = data["级别"].apply(lambda x: x[:1])
data["职称"].unique()
data["职称"].value_counts()

3.2将年龄进行分类–>年龄段

  • [0,19,24,29,34,39,100]
  • [“20以下”,“20-25”,“25-30”,“30-35”,“35-40”,“40以上”]
data["年龄段"] = pd.cut(x=data["年龄"],bins=[0,19,24,29,34,39,100],labels=["20以下","20-25","25-30","30-35","35-40","40以上"])
data["年龄段"].value_counts()
#25-30    8459
#20-25    6000
#30-35     521
#35-40      19
#20以下        0
#40以上        0

3.3 判断员工是否有部门变动:现就职部门与原就职部门不一致–>是否部门变动

def is_zhiwei(zhiwei_yuan,zhiwei_xian):
    if zhiwei_yuan == zhiwei_xian:
        return "否"
    else:
        return "是"
data["是否部门变动"] = data.apply(lambda x: is_zhiwei(x["原就职部门"],x["现就职部门"]),axis=1)

在这里插入图片描述
4. 职位分析过程

  • 筛选在职数据
data_zaizhi = data[data["是否离职"] == "在职"]

4.1 人力构成指标
4.1.1 人员岗位分布(在职):部门人数/公司总人数

data_zaizhi_xian = data_zaizhi.groupby("现就职部门",as_index=False)[["工号"]].count()
data_zaizhi_xian.columns = ["部门","数量"]
data_zaizhi_xian["占比"] = data_zaizhi_xian["数量"]/data_zaizhi_xian["数量"].sum()
data_zaizhi_xian.sort_values("数量",inplace=True)
plt.figure(figsize=(20,8),dpi=200)
ax1 = plt.subplot(111)
ax1.bar(data_zaizhi_xian.部门,data_zaizhi_xian.数量,width=0.5)
ax2 =
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值