crosstab 、pivot_table 、groupby比较

所用数据前五条

目标

生成数据透视图

 

crosstab

pd.crosstab(index=data['admit'],columns=data['prestige'])

 以上代码用于计数,如要展示其他数据,可设置crosstab中的values参数和aggfunc参数

values:透视图中间数据

aggfunc:中间数据的计算方式

如图 ,中间数据为gpa,计算方式为mean

pd.crosstab(values=data['gpa'],index=data['admit'],columns=data['prestige'],aggfunc='mean')

 margins 和margins_name,各行各列数据求和,以及命名 

pd.crosstab(values=data['gpa'],index=data['admit'],columns=data['prestige'],margins=True,margins_name='Total',aggfunc='count')

normalize参数:各数据占比,如图分布为normalize=True ,normalize=1,normalize=0

  

 

 

pivot_table

与crosstab功能基本相似,输入有所不同,crosstab输入为单列数据,pivot_table输入完整数据并从中取列

pd.pivot_table(data=data,values=['gpa','gre'],
index='admit',columns='prestige',
margins=True,margins_name='Total',aggfunc='count')

参数和crosstab差别不大。使用时可以根据需要设置values值

 groupby

通过两个特征进行分组,之后选择数据展示方式

data.groupby(['admit','prestige']).count()

需要将prestige转换为列:使用unstack()函数

data.groupby(['admit','prestige']).count().unstack()

 

 数据的选择:A处选择想要的数据,B处选择数据的展示方式

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值