人力和财务工作中常会用到的Pandas代码

Crossin的编程教室

共 2667字,需浏览 6分钟

 ·

2021-01-23 13:36


项目背景


大家好,欢迎来到 Crossin的编程教室 !

经常有同学会问,我不是程序员,但想知道学了Python在工作中有哪些应用场景?那么今天就来给大家分享点“实用”的!

假设你是某公司的人力资源总监,你想了解下公司目前的员工整体情况如何。于是,可能就有了下面的问题:

  • 各部门有多少名员工?

  • 员工总体流失率是多少?

  • 员工平均薪资是多少?

  • 员工平均工作年限是多少?

  • 公司任职时间最久的3名员工是谁?

  • 员工整体满意度如何?


数据处理


import pandas as pddata = 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.2data['奖金'].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].indexdata.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)


单击查看大图


总结


以上,便是我们整理的一些在人力、财务等岗位上,很可能经常用到的一些数据统计和分析代码,希望对各位的学习有所帮助。

学习使用Python做数据分析,一定要结合实例来做,最好是你工作中会遇到的场景。不然,只是一味地啃书本上的方法,总是一边学一边忘,难以实践。

文中所用示例数据xlsx文件:
https://pan.baidu.com/s/1ehbEzSF-thRFWOhdI9AW4g
提取码:y6ye


作者:严小样儿
来源:统计与数据分析实战


_往期文章推荐_

用Python建立客户流失预测模型




浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报