import pandas as pd
import numpy as np
import scipy.stats as ss
import matplotlib.pyplot as plt
import seaborn as sns
#交叉分析
df = pd.read_csv('HR_comma_sep.csv')
dp_indices = df.groupby(by="sales").indices#全部求均值,根据sales列进行分组。根据indices属性,求分组之后的索引
sales_values =df["left"].iloc[dp_indices["sales"]].values #取出离职率,取出seles。 iloc是取几行,loc是取到第几行。sales存在的left都需要选取
technical_values =df["left"].iloc[dp_indices["technical"]].values#取left 的前几行,值为分组后technical的索引值
# print(ss.ttest_ind(sales_values,technical_values))#打印P值统计量
#两个两个求p值
dp_keys =list(dp_indices.keys())#取出dp_indices的key,即所有索引值
dp_t_mat = np.zeros([len(dp_keys),len(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]#计算P的独立检验值
if p_value <0.05:#使图像更明显
dp_t_mat[i][j] =
python 交叉分析 笔记
最新推荐文章于 2023-06-09 10:00:00 发布