人力和财务工作中常会用到的Pandas代码
Crossin的编程教室
共 2667字,需浏览 6分钟
·
2021-01-23 13:36
各部门有多少名员工?
员工总体流失率是多少?
员工平均薪资是多少?
员工平均工作年限是多少?
公司任职时间最久的3名员工是谁?
员工整体满意度如何?
import pandas as pd
data = pd.read_excel(r'英雄联盟员工信息表.xlsx', index_col='工号')
# 访问columns属性,查看列字段
data.columns
# 访问index属性,查看行标记
data.index
# 访问values属性,查看数据集
data.values
(单击查看大图)
# 调用head方法,查看前5行
data.head()
# 调用tail方法,查看后5行
data.tail()
# 查看指定列的前5行
data['部门'].head()
(单击查看大图)
# 对原数据集增加一列奖金列,数额为薪资的20%
data['奖金'] = data['薪资']*0.2
data['奖金'].head()
# loc方法,根据索引列访问数据集
idx = ['lol-1','lol-2','lol-3','lol-7']
data.loc[idx]
# 查看重复数据条(bool结果为True代表重复)
data.duplicated()
# 查看有多少条重复数据
data.duplicated().sum() # 结果:2
# 查看重复数据
data[data.duplicated()]
# 删除重复数据条,inplace参数代表是否在原数据集进行删除
data.drop_duplicates(inplace=True)
# 再次查看是否全部去重
data.duplicated().sum() # 结果: 0, 说明数据已经唯一
(单击查看大图)
一、各部门有多少名员工?
# 频数统计
data['部门'].value_counts()
# ascending = True代表升序展示
data['部门'].value_counts(ascending=True)
(单击查看大图)
二、员工总体流失率是多少?
# 频数统计
data['状态'].value_counts()
# normalize=True, 获得标准化计数结果
data['状态'].value_counts(normalize=True)
# 展示出员工总体流失率
rate = data['状态'].value_counts(normalize = True)['离职']
rate
(单击查看大图)
三、员工平均薪资是多少?
(单击查看大图)
由上图的结果可以看出,平均薪资在16800元,你达到了吗?!允许你去哭一会o(╥﹏╥)o!
四、员工平均工作年限是多少?
五、公司任职时间最久的3名员工是谁?
# describe方法也是常用的一种方法,而且结果更全面
data['工龄'].describe()
# 通过降序排序、切片操作,找到待的最久的三名员工
data['工龄'].sort_values(ascending=False)[:3]
ID = data['工龄'].sort_values(ascending=False)[:3].index
data.loc[ID]
(单击查看大图)
六、员工整体满意度如何?
data['满意度'].head()
# 通过查看满意度前五行发现,不太直观,我们可以用map进行映射,先建立一个映射字典
JobSatisfaction_cat = {
1:'非常满意',
2:'一般般吧',
3:'劳资不爽'
}
data['满意度'].map(JobSatisfaction_cat)
# 对原数据集进行满意度映射
data['满意度'] = data['满意度'].map(JobSatisfaction_cat)
data['满意度'].head()
(单击查看大图)
接下来,进行员工整体满意度分析。通过计算可以得出:70%员工都比较认可公司,但仍有30%员工对公司不满意。人力主管以及部门主管需要进一步探究清楚这30%员工的情况,因为不满意是否已经离职?还是存在隐患?是否处于核心岗位等等问题值得我们进一步探究。
data.head()
# 频数统计
data['满意度'].value_counts()
# 获得标准化计数结果,考虑到百分比更能说明满意度情况,所以乘100展示
100*data['满意度'].value_counts(normalize=True)
(单击查看大图)
_往期文章推荐_
评论