热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python交叉分析学习笔记

Python交叉分析学习笔记本文将介绍两种方法来进行交叉分析:1.独立T检验2.数据透视表。数据源:百度网盘,课程来源:慕课网数据源共包括10个变量,如下:satisfaction

Python交叉分析学习笔记

本文将介绍两种方法来进行交叉分析:1.独立T检验 2.数据透视表。
数据源:百度网盘,课程来源:慕课网

数据源

共包括10个变量,如下:satisfaction_level(满意度),last_evaluation(上司评价),number_project(项目数量),average_monthly_hours(每月工作市场),time_spend_company(在公司的时间),Work_accident(工作事故),left(离职率),promotion_last_5years(五年内是否晋升),department(部门),salary(工资高低)。

方法1:独立T检验

任意取数据中的两个属性,根据独立T检验结果,判断两者之间的关系。

1.导入数据

df=pd.read_csv(r'C:\Users\me\Desktop\HR.csv')
#‘r’在这里起转置作用

2.引入必要的模块

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

3.数据清理

(1)去掉空值

df=df.dropna(how='any',axis=0)
#axis=0表示删除整行的数据,how=‘any’表示只要这一行有一个空值就需要删除整行

(2)去掉异常值

df=df[df['last_evaluation']<=1][df['salary']!='nme'][df['department']!='sale']
#根据异常值的判断,‘last_evaluation’应小于1,‘salary’应去掉‘nme’这个值,‘department’应去掉‘sale’这个值

4.判断各个部门的离职率是否存在差异

基本思路是对各个部门的离职分别,两两求T检验统计量,得出p值,目的是得到各个部门的离职分布。

dp_indices=df.groupby(by='department').indices
#基于‘department’分组,并得到索引
sales_values=df['left'].iloc[dp_indices['sales']].values
#取出‘sales’部门的值
technical_values=df['left'].iloc[dp_indices['technical']].values
#取出‘technical’部门的值
print(ss.ttest_ind(sales_values,technical_values)[1])
#输出T检验统计量,‘[1]’索引表示只取p值

5.两两变量间求p值

dp_keys=list(dp_indices.keys())
#取出indices的key,注意python3中需要加list才能变成数组
dp_t_mat=np.zeros([len(dp_keys),len(dp_keys)])
#建立矩阵,长和宽均为dp_keys的长度
for i in range(len(dp_keys)):
for j in range(len(dp_keys)):
p_value=ss.ttest_ind(df['left'].iloc[dp_indices[dp_keys[i]]].values,
df['left'].iloc[dp_indices[dp_keys[j]]].values)[1] #求独立T检验值
if p_value<0.05:
dp_t_mat[i][j]=-1 #判断条件,p<0.05,直接赋值-1
else:
dp_t_mat[i][j]=p_value #对矩阵进行赋值
sns.heatmap(dp_t_mat,xticklabels=dp_keys,yticklabels=dp_keys)
#画热力图

得出图表如下:
《Python交叉分析学习笔记》黑色部分代表p<0.5,表明各部门之间的离职率存在着显著差异,其他颜色部分代表未存在显著差异。

方法2:数据透视表方法

piv_tb=pd.pivot_table(df,values='left',index=['promotion_last_5years','salary'],
columns=['Work_accident'],aggfunc=np.mean)
#建立数据透视表,值为‘left’,横坐标为‘promotion_last_5years’和‘salary’,聚合方法为mean

得到的透视表如下:
《Python交叉分析学习笔记》
promotion_last_5years代表过去五年是否有晋升,0代表否,1代表是;列Work_accident代表是否有工作事故,0代表没有,1代表有,0.331728这个值比较大,需要重点关注,这个值表明过去五年没有工作事故,也没有晋升,但salary(工资)较低的这类人可能离职率更高。
下面根据数据透视表画热力图

sns.heatmap(piv_tb,vmin=0,vmax=1,cmap=sns.color_palette('Reds',n_colors=256))
#指定最小值为0,最大值为1,用seaborn中color_palette进行调色,代码详见seaborn官网
plt.show()

图表如下:《Python交叉分析学习笔记》
如上图所示,颜色越深的部分,离职率越高。


推荐阅读
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • Explain如何助力SQL语句的优化及其分析方法
    本文介绍了Explain如何助力SQL语句的优化以及分析方法。Explain是一个数据库SQL语句的模拟器,通过对SQL语句的模拟返回一个性能分析表,从而帮助工程师了解程序运行缓慢的原因。文章还介绍了Explain运行方法以及如何分析Explain表格中各个字段的含义。MySQL 5.5开始支持Explain功能,但仅限于select语句,而MySQL 5.7逐渐支持对update、delete和insert语句的模拟和分析。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • python机器学习之数据探索
    🐱今天我们来讲解数据建模之前需要处理的工作,也就是数据探索的过程,很多同学会说,不就是处理缺失值,异常值&# ... [详细]
author-avatar
暖倪2502938803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有