Python员工离职数据分析

Python员工离职数据分析

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
# 数据全显示
pd.set_option('display.max_columns', None)
# 颜色
colors = sns.color_palette()
# 数据精度
pd.set_option('precision', 3)
#  解决中文/小数点显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

项目名称:IBM员工离职数据分析

数据来源:https://tianchi.aliyun.com/dataset/dataDetail?dataId=77180

data_path = './data/WA_Fn-UseC_-HR-Employee-Attrition.csv'
df = pd.read_csv(data_path)
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1470 entries, 0 to 1469
Data columns (total 35 columns):
Age                         1470 non-null int64
Attrition                   1470 non-null object
BusinessTravel              1470 non-null object
DailyRate                   1470 non-null int64
Department                  1470 non-null object
DistanceFromHome            1470 non-null int64
Education                   1470 non-null int64
EducationField              1470 non-null object
EmployeeCount               1470 non-null int64
EmployeeNumber              1470 non-null int64
EnvironmentSatisfaction     1470 non-null int64
Gender                      1470 non-null object
HourlyRate                  1470 non-null int64
JobInvolvement              1470 non-null int64
JobLevel                    1470 non-null int64
JobRole                     1470 non-null object
JobSatisfaction             1470 non-null int64
MaritalStatus               1470 non-null object
MonthlyIncome               1470 non-null int64
MonthlyRate                 1470 non-null int64
NumCompaniesWorked          1470 non-null int64
Over18                      1470 non-null object
OverTime                    1470 non-null object
PercentSalaryHike           1470 non-null int64
PerformanceRating           1470 non-null int64
RelationshipSatisfaction    1470 non-null int64
StandardHours               1470 non-null int64
StockOptionLevel            1470 non-null int64
TotalWorkingYears           1470 non-null int64
TrainingTimesLastYear       1470 non-null int64
WorkLifeBalance             1470 non-null int64
YearsAtCompany              1470 non-null int64
YearsInCurrentRole          1470 non-null int64
YearsSinceLastPromotion     1470 non-null int64
YearsWithCurrManager        1470 non-null int64
dtypes: int64(26), object(9)
memory usage: 402.1+ KB
df.describe()
AgeDailyRateDistanceFromHomeEducationEmployeeCountEmployeeNumberEnvironmentSatisfactionHourlyRateJobInvolvementJobLevelJobSatisfactionMonthlyIncomeMonthlyRateNumCompaniesWorkedPercentSalaryHikePerformanceRatingRelationshipSatisfactionStandardHoursStockOptionLevelTotalWorkingYearsTrainingTimesLastYearWorkLifeBalanceYearsAtCompanyYearsInCurrentRoleYearsSinceLastPromotionYearsWithCurrManager
count1470.0001470.0001470.0001470.0001470.01470.0001470.0001470.0001470.0001470.0001470.0001470.0001470.0001470.0001470.001470.0001470.0001470.01470.0001470.0001470.0001470.0001470.0001470.0001470.0001470.000
mean36.924802.4869.1932.9131.01024.8652.72265.8912.7302.0642.7296502.93114313.1032.69315.213.1542.71280.00.79411.2802.7992.7617.0084.2292.1884.123
std9.135403.5098.1071.0240.0602.0241.09320.3290.7121.1071.1034707.9577117.7862.4983.660.3611.0810.00.8527.7811.2890.7066.1273.6233.2223.568
min18.000102.0001.0001.0001.01.0001.00030.0001.0001.0001.0001009.0002094.0000.00011.003.0001.00080.00.0000.0000.0001.0000.0000.0000.0000.000
25%30.000465.0002.0002.0001.0491.2502.00048.0002.0001.0002.0002911.0008047.0001.00012.003.0002.00080.00.0006.0002.0002.0003.0002.0000.0002.000
50%36.000802.0007.0003.0001.01020.5003.00066.0003.0002.0003.0004919.00014235.5002.00014.003.0003.00080.01.00010.0003.0003.0005.0003.0001.0003.000
75%43.0001157.00014.0004.0001.01555.7504.00083.7503.0003.0004.0008379.00020461.5004.00018.003.0004.00080.01.00015.0003.0003.0009.0007.0003.0007.000
max60.0001499.00029.0005.0001.02068.0004.000100.0004.0005.0004.00019999.00026999.0009.00025.004.0004.00080.03.00040.0006.0004.00040.00018.00015.00017.000
# 查看所有数据分布
colnm = df.columns.to_list()
plt.figure(figsize=(35, 25))
for i in range(35):plt.subplot(5, 7, i+1)  # 3行4列 位置是i+1的子图df[colnm[i]].hist(bins=80, color=colors[1])  # bins 指定显示多少竖条plt.xlabel(colnm[i], fontsize=13)plt.ylabel('Frequency')
plt.tight_layout()
print('\n figure 01')
 figure 01

在这里插入图片描述

得出结论: 该公司员工平均年龄为36岁 平均工作年限为11年,最长工作年限为40年 月平均收入为6502.93等重要信息

# 公司各部门离职率分析
plt.figure(figsize=(15, 9))  # 图片大小
df1 = pd.crosstab(df['Department'], df['Attrition'])
df1.plot(kind='bar')
plt.legend()
plt.xlabel('部门')
plt.ylabel('人数')
plt.xticks(rotation=0)
plt.title('公司各部门离职率分析')
print('\n figure 02')
 figure 02

在这里插入图片描述

得出结论:公司主要由三个部门组成(人力资源,科技部门,销售部门),其中科技部门的总人数最多,相对应的离职人数也是最多的,人力资源部门总人数和离职人数都最少

# 公司离职人数占比分析
labels = ['离职', '在职']
sizes = [sum(df['Attrition'] == 'Yes'), sum(df['Attrition'] == 'No')]
explode = (0, 0.001)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=150)
plt.title("公司离职人数占比分析")
print('\n figure 03')
 figure 03

在这里插入图片描述

得出结论:公司离职率是16%

# 加班与离职率的关系
plt.figure(figsize=(6, 4))
sns.countplot(x='OverTime', hue='Attrition', data=df, color=colors[4])
plt.legend()
plt.xlabel('加班时长')
plt.title('加班与离职率的关系')
print('\n figure 04')
 figure 04

在这里插入图片描述

得出结论:加班时间越长,员工的离职率越高,加班是导致离职的重要原因

# 商务出差与离职率的关系
plt.figure(figsize=(6, 4))
sns.countplot(x='BusinessTravel', hue='Attrition', data=df)
plt.legend()
plt.xlabel('商务出差频次')
plt.title('商务出差与离职率的关系')
print('\n figure 05')
 figure 05

在这里插入图片描述

得出结论:如果频繁的商务出差,员工的离职率会更高

# 教育程度与离职率的关系
plt.figure(figsize=(6, 4))
sns.countplot(x='Education', hue='Attrition', data=df, color=colors[6])
plt.legend()
plt.xlabel('教育程度')
plt.title('教育程度与离职率的关系')
print('\n figure 06')
 figure 06

在这里插入图片描述

得出结论:科技公司大部分学历中偏上,教育程度越高,更有竞争力,离职率也越低

# 性别与离职率的关系
plt.figure(figsize=(6, 4))
sns.countplot(x='Gender', hue='Attrition', data=df, color=colors[8])
plt.legend()
plt.xlabel('性别')
plt.title('性别与离职率的关系')
print('\n figure 07')
 figure 07

在这里插入图片描述

得出结论:科技公司男性人数比较多,通过公司人口基数来对比,女性的离职率是要高于男性的

# 婚姻状况与离职率的关系
labels = ['单身', '已婚', '离婚']
sizes = [sum(df['MaritalStatus'] == 'Married'), sum(df['MaritalStatus'] == 'Single'), sum(df['MaritalStatus'] == 'Divorced')]
explode = (0.04, 0, 0.001)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=150)
plt.title("婚姻状况与离职率的关系")
print('\n figure 08')
 figure 08

在这里插入图片描述

得出结论:公司单身离职率最高,离婚后的离职率最低

# 收入与离职率的关系
df_income1 = df[(df['MonthlyIncome'] > 1000) & (df['MonthlyIncome'] < 8000)]
df_income2 = df[(df['MonthlyIncome'] > 8000) & (df['MonthlyIncome'] < 15000)]
df_income3 = df[(df['MonthlyIncome'] > 15000) & (df['MonthlyIncome'] < 20000)]
labels = ['月收入小于8000离职率', '月收入8000-15000离职率', '月收入大于15000离职率']
sizes = [sum(df_income1['Attrition'] == 'Yes'), sum(df['Attrition'] == 'Yes'),sum(df['Attrition'] == 'Yes')]
explode = (0.04, 0, 0.001)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=150)
plt.title("收入与离职率的关系")
print('\n figure 09')
 figure 09

在这里插入图片描述

得出结论:公司单身离职率最高,离婚后的离职率最低

# 员工工作过的公司与离职率的关系
df_worked1 = df[(df['NumCompaniesWorked'] > 0) & (df['NumCompaniesWorked'] < 3)]
df_worked2 = df[(df['NumCompaniesWorked'] > 3) & (df['NumCompaniesWorked'] < 6)]
df_worked3 = df[(df['NumCompaniesWorked'] > 6) & (df['NumCompaniesWorked'] < 10)]
x = ['0-3家', '3-6家', '6-10家']
y = [sum(df_worked1['Attrition'] == 'Yes'), sum(df_worked2['Attrition'] == 'Yes'), sum(df_worked3['Attrition'] == 'Yes')]
plt.plot(x, y, color='r')
plt.xlabel('员工工作过公司数量')
plt.ylabel('离职人数')
plt.title("员工工作过的公司与离职率的关系")
print('\n figure 10')
 figure 10

在这里插入图片描述

得出结论:员工工作过的公司越少,离职率越低,说明频繁跳槽的员工稳定性较差,更容易离职。

总结:

1.加班是导致离职最重要的原因。
建议:完善加班制度,可以对员工每月加班的时间进行限制。
加强员工培训,合理安排工作时间的工作和会议安排,提高工作时间的工作效率。

2.差旅次数过多也会导致员工离职。因为员工长期出差没办法兼顾家庭并且工作负担也比较大。
建议:合理安排员工的差旅次数。例如实施轮流差旅措施

3.工作年数也和离职率密切相关。工作年数越长,职位水平越高,离职率越低。
建议:公司招聘时考察员工的稳定性,一般情况下,以前待过的公司越少越好。

4.单身的人离职率较高。
建议:公司多关照单身的人,别让加班耽误了单身青年谈恋爱,相亲的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56630.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从数据分析,看公司员工流失率分析报告

一、概述&#xff1a; 1、员工离职和员工流失率的概念&#xff1a; 员工离职&#xff1a;员工被辞退及辞职、不续签的情况 员工流失率&#xff08;离职率&#xff09;&#xff1a;公司离职的员工人数/&#xff08;入职人数最初原有人数&#xff09;*100% 例如&#xff1a;月…

数据分析——员工离职预测

员工离职预测 一. 题目描述二. 数据说明三. 步骤实现1.导入并查看2.数据探索性分析3.数据处理4.模型分析5.结果分析(1) 可视化的结果分析(2&#xff09;特征选择结果分析(3)多模型交叉验证结果分析 一. 题目描述 员工是否准备离职是困扰用人单位的问题&#xff0c;其关系到单位…

逾2500名选手竞跑乌鲁木齐冰雪马拉松

中新社乌鲁木齐1月13日电(记者 孙亭文) 2019乌鲁木齐丝绸之路冰雪马拉松(简称“冰马”)13日鸣枪开跑&#xff0c;逾2500名跑友在天山山麓的“冰天雪地”中竞跑。 1月13日&#xff0c;2019乌鲁木齐丝绸之路冰雪马拉松在乌鲁木齐市城南的天山脚下鸣枪开跑&#xff0c;逾2500名跑友…

html 跑步比赛小游戏,疯狂趣味跑步竞赛3D

疯狂趣味跑步竞赛3D是一款跑酷类型的休闲游戏&#xff0c;游戏在整体画面上搭配了最新的技术&#xff0c;使得游戏画面看起来非常华丽&#xff0c;人物的建模也很可爱。玩家在游戏中可以在各种风格的跑道上进行比赛&#xff0c;还可以在线跟别的玩家进行匹配。喜欢这款游戏的快…

oracle计算日期倒计时,时间倒算回去到了哪里?│机械倒数计时码表

Laura Lan蓝思晴 《大寫的蘿菈》主笔 华语圈知名钟表珠宝评论家&#xff0c;专精机械钟表赏析&#xff0c;亦对珠宝、生活、文化与艺术等各领域皆有着独到的见解。创办《引想力工作室》从事专业文案、顾问、讲习等工作。 所有不能实现的&#xff0c;制表大师们都曾经挖空心思研…

茂名天源石化等项目开工 石化业高质量发展看广东

目前来看&#xff0c;广东省已经拥有诸多国外化工巨头、大型民营炼化企业和不少国企的炼化项目&#xff0c;成为很多石化企业首选的项目落地基地。“石化业高质量发展看广东”&#xff0c;已经逐渐明朗。今年以来&#xff0c;已有恒力石化(惠州)PTA项目、东华能源(茂名)烷烃资源…

c++并行编程中的“锁”难题

linux服务器开发相关视频解析&#xff1a; 在并行程序中&#xff0c;锁的使用会主要会引发两类难题&#xff1a;一类是诸如死锁、活锁等引起的多线程Bug&#xff1b;另一类是由锁竞争引起的性能瓶颈。本文将介绍并行编程中因为锁引发的这两类难题及其解决方案。 1、用锁来防止…

恒力石化、茂名天源石化等项目开工 2025年广东石化产业营收力争超2万亿

目前来看&#xff0c;广东省已经拥有诸多国外化工巨头、大型民营炼化企业和不少国企的炼化项目&#xff0c;成为很多石化企业首选的项目落地基地。“石化业高质量发展看广东”&#xff0c;已经逐渐明朗。 今年3月31日&#xff0c;广东省发展改革委官网公布《广东省2021年重点建…

Linux中的线程

1.线程的基本概念 2.线程和进程的区别 线程安全 *线程的同步 线程的调度 线程的通信编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程_阳光日志-CSDN博客_多线程和多进程编程线程是什么&#xff1f;要理解这个概念&#xff0c;须要先了解一下操作系统的一些…

武汉超级计算机中心,加快打造“五个中心” 武汉率先开建人工智能计算中心...

(来源&#xff1a;武汉市发改委) 原标题&#xff1a;加快打造“五个中心” 武汉率先开建人工智能计算中心 从华为东莞松山湖基地运来的预制化模块箱体&#xff0c;正在光谷科学岛起步区被吊装&#xff0c;未来将被“拼装”成武汉重要的人工智能算力基础设施。3月1日&#xff0c…

产业丨国产数据库行业火热,厂商各有各的算盘

前言&#xff1a; 随着数字经济的不断发展&#xff0c;未来数据库发展有着四个趋势&#xff1a;开源、HTAP、云原生以及和大数据技术融合。 如今&#xff0c;随着众多企业入局&#xff0c;国产数据库正在打着一场激烈的翻身仗。 前言&#xff1a; 随着数字经济的不断发展&a…

不到一年涨粉849万,“神级账号”小鱼海棠背后成功的秘诀是什么?

如何能在短时间内精确吸粉百万&#xff0c;快速度过账号冷启动&#xff0c;跻身头部网红的行列&#xff1f;快手视频博主“小鱼海棠”就交出了一份完美的答卷。 凭借牢牢抓住与999个帅哥拍照这一创意点&#xff0c;“小鱼海棠”一战封神&#xff0c;成为网红界一匹飞速狂奔的黑…

灿谷集团荣获“公益践行奖”

2022年1月13-14日&#xff0c;“第十一届公益节暨企业社会责任嘉年华”在上海举行。在公益节上&#xff0c;灿谷集团凭借在履行企业社会责任方面的杰出表现&#xff0c;获评“2021年度公益践行奖”。 公益节设立于2011年&#xff0c;是国内首个由大众媒体联袂发起的以“公益”…

阿里P7被裁员,找工作小半年了,流程走着走着就没了

上一篇&#xff1a;幸好没去虾皮&#xff01; 互联网大厂&#xff0c;35岁中年人的困境 在很多行业&#xff0c;35岁正是事业发展黄金期&#xff0c;但在大厂&#xff0c;35岁员工担心竞争力下滑、被年轻人替代、找不到下家...。 “员工35岁被劝退”“高龄员工不续签”&#xf…

独家!起底蚂蚁集团灵活用工服务 源自税筹圈

中国灵活用工市场发展20余年&#xff0c;进入了快速成长阶段。灵活用工成为了时下主流的用工方式&#xff0c;为了达到降本增效的目的&#xff0c;越来越多的企业选择与灵活用工平台合作。 灵活用工产业角色方包括用工单位、用人单位和外包员工&#xff0c;其中的主角&#xff…

P2E的元宇宙赛车PVE正式开启,Supercars的全新赋能征程

前言&#xff1a; Luna近期崩盘的热度火遍全球&#xff0c;公链的安全事故导致ETH链上大量的资金开始出逃。一鲸落&#xff0c;万物生&#xff0c;市场热度开始由DeFi赛道又开始回归到了链游方向。以StepN为主的P2E&#xff0c;M2E在数据层面又开始逐渐变好&#xff0c;市场最…

计算广告(一)

计算广告学是一个十分庞大的学科&#xff0c;里面涵盖了自然语言处理、机器学习、推荐系统等众多研究方向。而且广告作为互联网行业的三大盈利模式&#xff08;广告、电商、游戏&#xff09;之一&#xff0c; 也是这三大模式中最有技术含量的&#xff0c;计算广告学一直都吸引…

献给青春的歌 · 致「 腾讯QQ 18 岁」

博主说&#xff1a;在中国为期不长的互联网历史上&#xff0c;太多的 IT 产品如昙花般匆匆一现&#xff0c;腾讯能够走过 18 载春秋&#xff0c;出人意料又在情理之中。但对于我们来说&#xff0c;腾讯QQ 绝并不仅仅只是一个用于聊天的软件而已&#xff0c;因为它更承载着我们青…

触宝占据内容赛道有利位置:疯读高速发展,或将迎来价值修复时刻

撰稿 | 多客 来源 | 贝多财经 近年来&#xff0c;移动互联网的快速发展&#xff0c;使得战略转型成为一个持续性的话题。 如百度从搜索到AI的转变&#xff0c;如平安集团从金融到科技的调整&#xff0c;众多互联网大厂也纷纷瞄准内容赛道&#xff0c;譬如字节跳动、趣头条、阅…

OEM“竞跑”:智能电动+本地化

高市值&#xff0c;是支撑汽车制造商继续智能电动汽车赛道征战的门票。 近日&#xff0c;戴姆勒首席执行官Ola Kallenius正在为这家传统豪华汽车制造商寻求更高的估值。去年12月戴姆勒的卡车部门被分拆后&#xff0c;这家汽车制造商将在今年2月1日正式更名为梅赛德斯奔驰&…