一、数据来源
二、提出问题
问题:Why are our best and most experienced employees leaving prematurely?这个数据集作者希望我们探讨的问题是关于最有经验、最优秀的员工,为什么过早地离开了公司。我们可以从职级、司龄等字段来对我们要考察的员工进行定位。
三、数据理解
员工基本信息:ID、姓名、部门、所在地区、角色(职位)(role)、司龄(time_spend_company)、薪酬水平(salary)、性别等。通过这些基本字段,我们可以了解离职员工的基本画像,比如哪些部门、哪些地区的离职员工最多。
绩效数据:last_evaluation(上次绩效评估得分,可以通过这一项来了解员工的工作结果是否满足公司期待。对于得分较高缺离职的员工是我们需要关注的对象)、promotion_last_5years(过去5年是否得到晋升)
工作情况:number_projects(上年度负责项目)、average_monthly_hours(月均工作时间)。通过这两个字段,我们可以知道员工的工作负荷。
员工调查(第三方公司执行):EMP_Engagement(在公司内部自己感觉对于工作的参与度)、EMP_Work_Status(员工对于工作职级的满意度)、Emp_Position(员工对于其岗位的满意度)、Emp_Title(员工对于自己头衔的满意度)、Emp_Collaborative(员工对于其公司员工合作性的评估)
四、分析思路
首先我们看到想要分析的问题中,有几个关键词——最有经验、最优秀、过早离开。说明公司的领导者很关注能产生高绩效的员工为什么离开了公司。我们先对分析目标人群进行定义——已经离职的(left_company=1)、角色在经理级以上(role=manager or senior manager or director or senior director or vp)、司龄小于3(time_spend_company=2)、绩效评分大于等于9(last_evaluation>=9)的员工。
影响离职的因素有很多。而我们在希望提高核心员工留存率的时候,我们总希望找到最为关键的因素,来实施相应的改进措施。所以,这里我们主要分析薪酬水平、工作负荷、员工对自己头衔/职级/岗位的满意度、工作参与度、公司员工合作性等方面,考察这些因素与员工离职的相关度为多少。找到核心的因素,再来进一步思考薪酬结构、工作安排等方面的合理性。
由于目前课程还没进行到运用python进行相关性分析,我们先进行数据清理和基本统计信息的查看。
五、数据清洗
① 导入数据:查看前五行数据,看到导入情况正常。
import pandas as pd
route = 'D:\【学习】统计与编程\中级数据分析\人力资源分析练习数据集\HR_Engagement_Sat_Sales_UpdatedV4.0.xlsx'
excel1 = pd.ExcelFile(route)
data = excel1.parse('sheet1')
data.head()
②列的选取、缺失数据筛查、查看描述统计信息:数据集中有过多的字段,我们针对上述需要分析的字段,选取相应的列。同时我们进行缺失数据的筛查。前后对比发现没有缺失数据。
dataselect = data.loc[:,['ID','Name','Department','GEO','Role','EMP_Engagement_1','EMP_Engagement_2','EMP_Engagement_3','EMP_Engagement_4',
'EMP_Engagement_5','last_evaluation',
'number_project','average_montly_hours','time_spend_company','left_Company','salary',
'Emp_Word_Status2','Emp_Work_Status_3','Emp_Work_Status_4','Emp_Work_Status_5','Emp_Identity','Emp_Role','Emp_Position','Emp_Title',
'Emp_Collaborative_1','Emp_Collaborative_2','Emp_Collaborative_3','Emp_Collaborative_4','Emp_Collaborative_5']]
dataselect.head()
print(dataselect.shape)
dataclean=dataselect.dropna(subset =[ 'ID','Emp_Collaborative_5'],how = 'any')
print(dataclean.shape)
dataclean.describe()
未完待续……
附:Python数据分析之数据清晰和简单分析知识点