python mysql就业情况_影响员工离职因素分析—Mysql/python
本文采用python和mysql两种方式对员工离职数据进行分析,试图找出员工离职的影响因素,降低离职率,减少企业的人员招聘成本及员工培养成本。
提取码:qxvl
数据大小:15000条数据
指标说明:
第一部分 Mysql
一、观察数据
1.1 查看数据完整性
-- 查看缺失值
SELECT COUNT(*),
COUNT(satisfaction_level),
COUNT(last_evaluation),
COUNT(number_project),
COUNT(average_montly_hours),
COUNT(time_spend_company),
COUNT(Work_accident),
COUNT(`left`),
COUNT(promotion_last_5years),
COUNT(promotion_last_5years),
COUNT(sales),
COUNT(salary)
FROM hr_comma_sep;
或者
select sum((case when satisfaction_level is null then 1 else 0 end ))
from hr_comma_sep;
由结果可知,无缺失值,共14999员工。
1.2 各部门离职人数
首先通过mysql汇总各部门人员的离职情况,其次,结合数据透视表,给出各部门的离职率。
#汇总各部门是否离职的人数select sales as 部门,`left` as 是否离职, count(`left`) as 部门人数
from hr_comma_sep
group by sales ,`left`
order by sales;
从上述结果可以得知,14999人中,离职率为23.81%。其中,hr部门、accounting和technical三个部门的离职率最高,分别为29.09%,26.6%和25.63%,而management部门的离职率最低,仅有14.4%。
1.3 员工满意度与离职率之间的关系
SELECT `left`,
sum(case WHEN satisfaction_level >0 AND satisfaction_level <= 0.1 THEN 1 ELSE 0 END) as '0~0.1',
sum(case WHEN satisfaction_level >0.1 AND satisfaction_level <= 0.2 THEN 1 ELSE 0 END) as '0.1~0.2',
sum(case WHEN satisfaction_level >0.2 AND satisfaction_level <= 0.3 THEN 1 ELSE 0 END) as '0.2~0.3' ,
sum(case WHEN satisfaction_level >0.3 AND satisfaction_level <= 0.4 THEN 1 ELSE 0 END) as '0.3~0.4',
sum(case WHEN satisfaction_level >0.4 AND satisfaction_level <= 0.5 THEN 1 ELSE 0 END) as '0.4~0.5',
sum(case WHEN satisfaction_level >0.5 AND satisfaction_level <= 0.6 THEN 1 ELSE 0 END) as '0.5~0.6',
sum(case WHEN satisfaction_level >0.6 AND satisfaction_level <= 0.7 THEN 1 ELSE 0 END) as '0.6~0.7',
sum(case WHEN satisfaction_level >0.7 AND satisfaction_level <= 0.8 THEN 1 ELSE 0 END) as '0.7~0.8',
sum(case WHEN satisfaction_level >0.8 THEN 1 ELSE 0 END) as '0.8以上'
from hr_comma_sep
group by `left`;员工满意度与离职情况
由此可见,随着满意度的增高,离职率呈现先减小后增加的趋势,在满意度为0.6-0.7时,员工的离职率最低,约为1.9%。
1.4 员工参与项目数与离职率之间的关系
select `left`,
sum(case when number_project='1' then 1 else 0 end) as 1个项目,
sum(case when number_project='2' then 1 else 0 end) as 2个项目,
sum(case when number_project='3' then 1 else 0 end) as 3个项目,
sum(case when number_project='4' then 1 else 0 end) as 4个项目,
sum(case when number_project='5' then 1 else 0 end) as 5个项目,
sum(case when number_project='6' then 1 else 0 end) as 6个项目,
sum(case when number_project='7' then 1 else 0 end) as 7个项目
from hr_comma_sep
group by `left`;
由此可知,14999人中,所有人都参与超过一个项目;
参与3-4个项目的人员最多,分别任4055人和4365人,合计超过总人数的1/2,但离职率低,参与3个项目的离职率为1.8%,参与4个项目的离职率为9.4%;
参与2各项目、6个项目和7个项目的人员离职率均超50%。
1.5 员工薪资水平与离职率关系
select `left`,
sum(case when salary='low' then 1 else 0 end) as `low`,
sum(case when salary='medium' then 1 else 0 end) as `medium`,
sum(case when salary='high' then 1 else 0 end) as `high`
from hr_comma_sep
group by `left`;
随着薪资水平的增加,离职率逐渐降低。
1.6 员工工作年限与离职率的关系
SELECT `left`,
sum(case WHEN time_spend_company =1 THEN 1 ELSE 0 END) as '1年',
sum(case WHEN time_spend_company =2 THEN 1 ELSE 0 END) as '2年',
sum(case WHEN time_spend_company =3 THEN 1 ELSE 0 END) as '3年' ,
sum(case WHEN time_spend_company =4 THEN 1 ELSE 0 END) as '4年',
sum(case WHEN time_spend_company =5 THEN 1 ELSE 0 END) as '5年',
sum(case WHEN time_spend_company =6 THEN 1 ELSE 0 END) as '6年',
sum(case WHEN time_spend_company =7 THEN 1 ELSE 0 END) as '7年',
sum(case WHEN time_spend_company =8 THEN 1 ELSE 0 END) as '8年',
sum(case WHEN time_spend_company =9 THEN 1 ELSE 0 END) as '9年',
sum(case WHEN time_spend_company =10 THEN 1 ELSE 0 END) as '10年'
from hr_comma_sep
group by `left`;随着工作年限的增加,离职率先增后减,工作5年的离职率最高;
超过7年的员工,几乎不离职,员工的忠诚性很高;
工作一年之内,员工几乎不离职。
1.7 绩效评估与离职率的关系
sum(case WHEN last_evaluation >0 AND last_evaluation <= 0.1 THEN 1 ELSE 0 END) as '0~0.1',
sum(case WHEN last_evaluation >0.1 AND last_evaluation <= 0.2 THEN 1 ELSE 0 END) as '0.1~0.2',
sum(case WHEN last_evaluation >0.2 AND last_evaluation <= 0.3 THEN 1 ELSE 0 END) as '0.2~0.3' ,
sum(case WHEN last_evaluation >0.3 AND last_evaluation <= 0.4 THEN 1 ELSE 0 END) as '0.3~0.4',
sum(case WHEN last_evaluation >0.4 AND last_evaluation <= 0.5 THEN 1 ELSE 0 END) as '0.4~0.5',
sum(case WHEN last_evaluation >0.5 AND last_evaluation <= 0.6 THEN 1 ELSE 0 END) as '0.5~0.6',
sum(case WHEN last_evaluation >0.6 AND last_evaluation <= 0.7 THEN 1 ELSE 0 END) as '0.6~0.7',
sum(case WHEN last_evaluation >0.7 AND last_evaluation <= 0.8 THEN 1 ELSE 0 END) as '0.7~0.8',
sum(case WHEN last_evaluation >0.8 THEN 1 ELSE 0 END) as '0.8以上'
from hr_comma_sep
group by `left`;所有人的绩效评估均在0.3以上;
当绩效评估大于0.4时,离职率先降低后增加,在0.4-0.5时员工的离职率最高 ,在0.6--0.7时离职率最低;
1.8 工作事故与离职率的关系
SELECT `left`,
sum(case WHEN Work_accident = '1' THEN 1 ELSE 0 END) as '有',
sum(case WHEN Work_accident = '0' THEN 1 ELSE 0 END) as '无'
from hr_comma_sep
group by `left`;
有发生过事故的员工的离职率低于未发生过事故的员工的离职率,说明事故不是诱导员工离职的原因。
1.9 员工升职与离职率的关系
SELECT `left`,
sum(case WHEN promotion_last_5years = '1' THEN 1 ELSE 0 END) as '有',
sum(case WHEN promotion_last_5years = '0' THEN 1 ELSE 0 END) as '无'
from hr_comma_sep
group by `left`;
过去5年,有升职的员工的离职率为6%,无升职人员的离职率为24.2%。因此,升职有助于加强员工归属感,减少离职率。
第二部分 python
1.导入数据
# 导入数据分析包
import numpy as np
import pandas as pd
# 导入数据
employees = pd.read_csv('F:\\数据分析(每日练习)\\员工离职数据分析(10.25)\\HR_comma_sep.csv')
#查看数据
employees.info()employees数据集概况
该数据集共包含14999条数据,一共10列,无缺失数据。
# 查看数据
employees.head()
2.数据分析—可视化呈现2.1 离职率整体占比情况
import matplotlib.pyplot as plt
import seaborn as sns
#解决中文乱码
import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
%matplotlib inline
接下来,准备数据,画图离职率。
# 观察离职数据
employees['left'].value_counts()
14999条数据中,离职人数3571人,未离职人员11428人。
# 离职数据
employees_left = employees['left'].value_counts()
employees_left_lables = employees['left'].value_counts().index
# 饼图
plt.pie(employees_left,
labels = employees_left_lables,
autopct = '%3.1f%%',
colors = ['g','y']
)
离职人员占23.8%,不离职人员占76.2%。2.2 满意度与离职情况
# 查看满意度数据
employees['satisfaction_level'].head()
满意度是0-1之间的小数。
'''
将满意度数据进行转换,
0.0-0.4:low
0.4-0.7:medium
0.7-1.0:high
'''
# 第一步:定义函数
def satisfaction_new_levels(b):
a=[]
for values in b:
if values <0.4:
x='low'
elif values<0.7:
x= 'medium'
else:
x= 'high'
a.append(x)
satisfaction = pd.Series(a)
return satisfaction
# 第二步:应用函数
employees['satisfaction_new_level'] = satisfaction_new_levels(employees['satisfaction_level'])
# 查看函数
employees['satisfaction_new_level'].value_counts()高、中、低三种满意度对应的人数
# 画图观察满意度与离职情况之间的关系
fig = plt.figure(figsize = (15,5))
sns.countplot('satisfaction_new_level',
data = employees,
order = ['low','medium','high'],
hue = 'left'
)随着满意度的提升,员工的离职率在降低。2.3 绩效评估与离职情况
# 查看绩效评估数据
employees['last_evaluation'].head()
employees['last_evaluation'] = satisfaction_new_levels(employees['last_evaluation'])
employees['last_evaluation'].head()
# 画图观察绩效评估与离职情况之间的关系
fig = plt.figure(figsize = (6,3))
sns.countplot('last_evaluation',
data = employees,
order = ['low','medium','high'],
hue = 'left'
)
plt.title('绩效评估与员工离职关系')
python mysql就业情况_影响员工离职因素分析—Mysql/python相关推荐
- python主要就业方向-【数据说话】当下的Python就业前景如何
原标题:[数据说话]当下的Python就业前景如何 Python 现在是越来越火了. IEEE 发布的 2017 年编程语言排行榜,Python 排第一. 百度指数的搜索趋势,Python稳步上升. ...
- python就业发展前景_如何参与蓬勃发展的Python就业市场
python就业发展前景 From finance to artificial intelligence, data science to web development, there isn't a ...
- python数据获取就业方向_基于Python的就业岗位数据获取与预处理
林长谋 黄玮 摘要:互联网数据获取及分析是当前数据科学的一個重要部分.该文针对互联网中就业岗位数据获取与分析的过程基于Python构建了网络爬虫.并在通爬虫获取网络数据的基础上,对所获得的就业岗位数据 ...
- python mysql教程视频_第四课:MySQL环境安装-(崔庆才_Python3爬虫入门到精通课程视频 34课)总结...
输入localhost密码123456 Linux下安装mysql 命令输入Sudo su接着sudo apt-get install mysql-server mysql-client 安装设置密码 ...
- python 全部缩进一行_每天三分钟一起学python之(三)python的基本语法
每天三分钟,我们一起学python.在上一期PyCharm的安装及常用配置中,给大家介绍了PyCharm的安装方法和一些常用的配置.安装过PyCharm之后,我们就可以开始编写python程序了,今天 ...
- python交互界面实例_什么是“面向对象”程序设计-以Python为例
面向对象的概念 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理 ...
- python交互界面实例_什么是“面向对象”程序设计以Python为例
面向对象的概念 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理 ...
- 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?
本文介绍如何为RDS for MySQL实例创建账号和数据库. 账号类型RDS for MySQL实例支持两种数据库账号:高权限账号和普通账号.您可以在控制台管理所有账号和数据库,账号拥有的具体权限请 ...
- mysql xtrabackup 主从_使用 Xtrabackup 在线对MySQL做主从复制
说明1.1 xtrabackupmysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷.但一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力 ...
- 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记
1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...
最新文章
- 开发自己的山寨Android注解框架
- 微信验证以及登录流程
- C++ 十进制转其他进制
- 多边形三角剖分问题的综述
- React学习:脚手架搭建、antd引入-学习笔记
- 如何将 kitten编程猫里的以分号分隔的长字符串转换成列表结构
- ubuntu16.04下安装mysql详细步骤
- linux wireshark 安装教程,Linux下安装和运行Wireshark
- python2和python3的默认编码_Python2和Python3中的字符串编码问题解决
- oracle无+密码登陆,Oracle 11g通过wallet实现无密码登录
- matlab ct投影数据,CT_projection_and_reconstruction
- 国内NLP领域单轮融资新纪录,达观数据获1.6亿元B轮投资
- mysql ndb 测试_mysql ndb笔记
- 远程桌面管理工具汇总
- 软件测试知识体系图谱
- Python爬取wfxnews 小说网站,实现批量下载小说
- 《Context and Attribute Grounded Dense Captioning》笔记
- Java变量概述与使用
- 另类方法申请google adsense账号
- ElasticSearch【有与无】【搜索引擎】【ES22】同义词【选读】
热门文章
- Windows安装GoldenDict
- ROS-ubuntu-系统安装
- 大学及毕业总共9年时间追求过一个女孩却最终没有成功,期间的心酸,痛苦,怨恨以及最后消散写成了这篇2万字的散文诗小说。每一个字都是自己的心血,试问人生有几个9年?更何况是在你最美好的年华。喜欢的交流下。
- 关于单体应用的简单讲解
- 红米充电短路 红米note3充电短路 无法充电
- python中itertools模块zip_longest函数详解
- shell了解MySQL_MySQL Shell的简单介绍(r12笔记第95天)
- php k线公式源码,K线动能(附图,贴图 ,源码)
- msp430f149 4x4矩阵按键(薄膜)
- space-evenly的兼容性问题