人力和财务都可以学的Python数据分析实战

统计与数据分析实战

共 2497字,需浏览 5分钟

 · 2020-09-25


◆ ◆ ◆  ◆ 



项目背景


2018年,被称为互联网的寒冬之年。无论大小公司,纷纷走上了裁员之路,还有一些比较惨的,直接关门大吉。2019年上半年,甲骨文裁掉大量35岁左右的程序员,谁也没想到,IT界退休年龄这么早!而内心OS:我的房贷还没还清。。。。

假设你是人力资源总监,你该向谁开刀呢?先回答一下下面的问题。

  • 各部门有多少名员工?

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

  • 员工平均薪资是多少?

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

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

  • 员工整体满意度如何?




数据处理


import pandas as pddata = pd.read_excel(r'c:\Users\Administrator\Desktop\英雄联盟员工信息表.xlsx',index_col = u'工号')# 访问columns属性,查看列字段data.columns# 访问index属性,查看行标记data.index# 访问values属性,查看数据集data.values

(点击可放大查看)


# 调用head方法,查看前5行data.head()# 调用tail方法,查看后5行data.tail()# 查看指定列的前5行data[u'部门'].head()

(点击可放大查看)


# 对元数据集增加一列奖金列,数额为薪资的20%data[u'奖金'] = data[u'薪资']*0.2data[u'奖金'].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参数代表是否在元数据集进行删除,True表示是data.drop_duplicates(inplace=True)# 再次查看是否全部去重data.duplicated().sum()    # 结果:0,说明数据已经唯一

(点击可放大查看)


数据分析


1.各部门有多少名员工?


# 频数统计data[u'部门'].value_counts()# ascending = True代表升序展示data[u'部门'].value_counts(ascending = True)


(点击可放大查看)


2.员工总体流失率是多少?


# 频数统计data[u'状态'].value_counts()# normalize = True 获得标准化计数结果data[u'状态'].value_counts(normalize = True)# 展示出员工总体流失率rate = data[u'状态'].value_counts(normalize = True)[u'离职']rate


(点击可放大查看)


3.员工平均薪资是多少?


(点击可放大查看)


由上图的结果可以看出,平均薪资在16800元,你达到了吗?!允许你去哭一会o(╥﹏╥)o!


4.员工平均工作年限是多少?

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


# describe方法也是常用的一种方法,而且结果更全面。data[u'工龄'].describe()# 通过降序排序、切片操作,找到待的最久的三名员工data[u'工龄'].sort_values(ascending = False)[:3]ID = data[u'工龄'].sort_values(ascending = False)[:3].indexdata.loc[ID]


(点击可放大查看)


6.员工整体满意度如何?


data[u'满意度'].head()# 通过查看满意度前五行发现,不太直观,我们可以用map进行映射,先建立一个映射字典JobSatisfaction_cat = {    1:'非常满意',    2:'一般般吧',    3:'劳资不爽'}data[u'满意度'].map(JobSatisfaction_cat)# 对元数据集进行满意度映射data[u'满意度'] = data[u'满意度'].map(JobSatisfaction_cat)data[u'满意度'].head()


(点击可放大查看)


接下来,进行员工整体满意度分析。通过计算可以得出:70%员工都比较认可公司,但仍有30%员工对公司不满意。人力主管以及部门主管需要进一步探究清楚这30%员工的情况,因为不满意是否已经离职?还是存在隐患?是否处于核心岗位等等问题值得我们进一步探究。


data.head()# 频数统计data[u'满意度'].value_counts()# 获得标准化计数结果,考虑到百分比更能说明满意度情况,所以乘100展示100*data[u'满意度'].value_counts(normalize = True)


(点击可放大查看)


结束语


Python在数据分析中,应用的确非常广泛。但是光知道Python知识,没有用武之地也不行。推荐大家去看看《转行的你,如何成功面试数据分析》,希望大家都能够成功转行。对于预测模型的建立,之前也讲过,请移步《转行做数据分析之预测模型实战》。


最后,如果大家想要本次数据分析项目的完整代码数据集以及答疑释惑,请大家务必关注本公众号,长按下方二维码识别并扫描即可关注公众号。后台回复“微信”即可添加作者微信,为你送上数据集以及源代码,还可以答疑释惑哦。




在看”的永远18岁~
浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

举报