python数据分析与挖掘建模:交叉分析

前言

交叉分析是属性间的数据分析。本次实验中我们主要分析离职率(“left”)与各部门(“depar”)之间的关系,各部门之间的离职率是否有明显的差异,使用到的是独立t检验方法。
本篇文章中需要用到的库如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as ss
import seaborn as sns

操作步骤如下:

一、读取数据

df=pd.read_csv("./data/HR.csv")

需要注意的是这里的HR.csv中的异常值已经删除了。

二、按部门分组并获取部门对应的值,进行独立t检验

pd_indices=df.groupby(by="department").indices  # indices的使用会在本篇末补充
salary_values=df["left"].iloc[pd_indices["salary"]].values
print(salary_values)
techinical_values=df["left"].iloc[pd_indices["techinical"]].values
print(techinical_values)
print(ss.ttest_ind(salary_valuea,techinical_values)[1])  # 只需要p值所以加了一个索引

到此步运行结果为:在这里插入图片描述

三、如何两两之间求均值?

构建矩阵,双重循环遍历

dp_keys=list(dp_indices.keys())
dp_t_mat=np.zeros([len(dp_keys),len(dp_keys)])  # 生成一个dp_keys*dp_keys的矩阵
for i in range(dp_keys):
	for j in range(dp_keys):
		r_values=ss.ttest_ind(df["left"].iloc[dp_indices[dp_keys[i]]].values,df["left"].iloc[pd_indices[dp_keys[j]]].values)
		dp_t_mat[i][j]=p_values
sns.heatmap(dp_t_mat,xticklabels=dp_keys,yticklabels=dp_keys)
plt.show()

输出结果为:
在这里插入图片描述
由此可以看出颜色越深,离职率与部门之间是没有关系的,即部门之间的离职率没有显著差异。

交叉分析的另一种方式:透视表

piv_tv=pd.pivot_table(df,values="left",index=["promotion_last_5years","salary"],columns=["Work_accident"],aggfunc=np.mean)
print(piv_tv)
sns.heatmap(piv_tv,vmin=0,vmax=1,cmap=sns.color_palette("Reds",n_colors=200))
plt.show()

输出结果如下:
在这里插入图片描述
在这里插入图片描述
可以看出有一个数据相较而言是比较大的,即0.331728,表示过去五年没有晋升,薪资水平为low,且没有工作事故的离职率较高。

补充

测试数据 test

在这里插入图片描述
test数据为HR中的极小部分数据,以此展示比较清晰的方法使用。

indices

在这里插入图片描述
可以看出indices就是将分类“department”中的每一个元素的索引返回,即IT位于5,6,7,8,9,13的位置。

iloc和loc

iloc是靠行数索引
loc是靠定义的索引来索引
在这里插入图片描述

values

以列表的方式返回数据。
在这里插入图片描述

有帮助的话,点个赞再走吧~
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值