Pandas —— 透视表pivot_table()和交叉表crosstab()

透视表pivot_table()

透视表pivot_table()是一种进行分组统计的函数,参数aggfunc决定统计类型。

这里写图片描述
1、假设我想要根据sex和smoker计算分组平均数(pivot_table的默认聚合类型),并将sex和smoker放到行上:(因为day无法计算平均数,所以自动去除)

# 方法一:使用groupby
tips.groupby(['sex', 'smoker']).mean()
# 方法二:使用pivot_table
tips.pivot_table(row=['sex', 'smoker'])

这里写图片描述

2、现在假设我们只想聚合tip_pct和size,而且想根据day进行分组。我将smoker放到列上,把day放到行上:

tips.pivot_table(values=['tip_pct', 'size'], index=['sex', 'day'], columns='smoker')

这里写图片描述
3、传入margins=True,添加加分小计

tips.pivot_table(values=['tip_pct', 'size'], index=['sex', 'day'], columns='smoker', margins=True)

这里写图片描述

4、要使用其他的聚合函数,将其传给参数aggfunc即可。例如,使用count或len可以得到有关分组大小的交叉表:

这里写图片描述

pivot_table()的参数

参数名说明
values待聚合的列的名称
rows透视表的行
cols透视表的列
aggfunc聚合函数或函数列表
fill_value用于替换缺失值
margins添加行/列小计和总计

交叉表crosstab()

交叉表crosstab()是一种特殊的pivot_table(),专用于计算分组频率。

这里写图片描述

1、假设我们想要根据性别和用手习惯对这段数据进行统计汇总。虽然可以用pivot_table()实现该功能,但是pandas.crosstab()函数会更方便

这里写图片描述


转载链接:https://blog.csdn.net/hustqb/article/details/78086394

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值