python数据分析基础和利用python进行数据分析,利用python进行数据分析 简书

  python数据分析基础和利用python进行数据分析,利用python进行数据分析 简书

  Python数据分析-第三条注释1.交叉分析

  2.分组分析

  1.交叉分析交叉分析的含义是在纵向分析和横向分析的基础上,从交叉和立体的角度,由浅入深,由低级到高级的分析方法。这种方法虽然复杂,但弥补了“碎片化”分析方法带来的偏差。

  其实主要用法是:用来分析两个变量之间的关系。交叉分析一定要和假设检验连用会更好

  首先,作者的理解是交叉分析一定是二维的,它需要两个因素。否则,如果不能穿越,可以做成透视表。这两个因素一个是行,一个是列,然后进行假设检验,确定P值是否小于0.0.5,这样就更清楚了。

  编程实现:采用的是T检验假设*第一步,提取数据

  import pandas as PD import numpy as NP import scipy . stats as SSI import matplotlib . py plot as pltimport seaborn as SNS #设置图片的字体font _ scale SNS . Set _ context(font _ scale=1.5)df=PD . read _ CSV(。/data/HR . CSV )# grouping indexes获取分组数据的索引,Subscript # DP _ indicators=df . group by(by= department )。指标#取出左销售的值#loc:按行标签索引行数据#iloc:按行号索引行数据sales _ values=df [left]。iloc [dp _ indicators [sales]]。values#取出left的technical technical _ values=df[ left ]的值。iloc [dp _ indicators [技术]]。值*第二步,T检验

  #输出这两个变量的t检验的p值ss . ttest _ ind()[1]print(ss . ttest _ ind(sales _ values,technical _ values)[1])#然后将部门数据分组,根据分组,两两找出一个因子的p值#取出按部门分组的键名DP _ keys=list(DP _ indexes . keys())#初始化一个矩阵dp_t_mat=np.zeros ([len (DP _ keys)), Len(dp_keys)])#对于范围内I的每个数据的便利性(Len(dp_keys)):对于范围内j(len(DP _ keys)):# tTest p _ value=ss . tTest _ ind(df[ left ]。 iloc [dp _ indicators [dp。值,\ df [left]。iloc [dp _ indicators [dp _ keys [j]]。values][1]# t检验的p值小于0.05,给出-1,这意味着如果p _ value 0.05: dp _ t _

  # drawing SNS.heatmap (dp _ t _ mat,xticklabels=dp _ keys,yticklabels=dp _ keys) plt.show()

  *第三步,绘图

  #构建数据透视表pd.pivot_table()#values=left 。我们看到的值是左,横坐标指标设置为promotion_last_5years,然后指定一个薪资。#纵坐标列表示Work _ accident,聚合方法aggfunc设置为average。是函数piv_tb=pd.pivot _ table (df,values= left ,index=[promotion _ last _ 5 years , salary],\ columns=[work _ accident],aggfunc=np.mean) #绘制最小值vmin,最大值vmax,颜色cmap SNS.heatmap (PIV _ TB,vmin=0,VMAX=1,cmap=SNS . color _ palette( red ,n _ colors=256)) PLT.show()

  2.分组分析*利用透视表,交叉分析是指根据研究要求对对象(问卷、特征、现实)进行分类分组,使同一组内对象之间的差异小于各对象之间的差异,然后进行分析研究的方法。

  分组分析一般用条形图绘制,主要用seaborn模块的barplot()和countplot()条形图函数绘制。

  下面是barplot()和countplot()的区别:*分组分析的含义:

  表示条形图数值变量的估计值和每个矩形高度的中心趋势,并通过使用误差线提供关于估计值周围的不确定性的一些指示。具体用法如下:*barplot(条形图)

  计数图可视为分类直方图,而非量化变量。的基本api和选项与barplot()相同,因此您可以比较嵌套变量中的计数。(工作原理是对输入的数据进行分类,条形图显示每个分类的编号。)具体用法如下:

  seaborn . count plot(x=无,y=无,色调=无,数据=无,顺序=无,色调_顺序=无,方向=无,颜色=无,调色板=无,饱和度=0.75,减淡=真,ax=无,**kwargs)

  注:计数图参数和条形图基本差不多,可以对比着记忆,有一点不同的是计数图中不能同时输入x和y,且计数图没有误差棒。

  *countplot()绘制

  将熊猫作为警察局导入matplotlib.pyplot作为滨海港作为社交网络号码设置图片的字体字体刻度ns。set _ context(font _ scale=1.5)df=PD。read _ CSV( ./data/HR.csv)#离散分组#绘条形图#sns.barplot(x=薪金,y=左,色相=部门,数据=df)#plt.show()#连续分组sl_s=df[满意度_级别]SNS。条形图(list(range(len(sl _ s))、sl_s.sort_values())plt.show()绘图结果

  *第二种,利用不纯度(基尼系数)

  #可能平方和定义获取问题:如果不是isinstance(s,pd.core.series.Series): s=pd .Series(s) prt_ary=pd.groupby(s,by=s).计数()。值/浮点数(len)返回sum(prt_ary**2)#求基尼的值def getGini(s1,s2):d=dict()for I in list(range(len(S1))):d[S1[I]]=d . get(S1[I],[])[S2[I]]return 1-sum([getProbSS(d[k])* len(d[k])/float(len(S1))for k in d])print( getGini ,getGini(s1,S2))

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: