Pandas 可视化图表之crosstab 交叉表

前言

接上一篇,pandas.pivot_table是生成透视图,可以对数据进行行列的任意分组转置等操作,很方便。而crosstab则是一种特殊的透视表。

pandas.crosstab介绍

***crosstab***是交叉表,默认是计算分组频率的特殊透视表(默认的聚合函数是统计行列组合出现的次数)。如果指定了聚合函数则按聚合函数来统计,但是要指定values的值,指明需要聚合的数据。

函数原型如下:

pandas.crosstab(index, columns**,** values=None**,** rownames=None**,** colnames=None**,** aggfunc=None**,** margins=False**,** margins_name: str = 'All’, dropna: bool = True**,** normalize=False**)** → ‘DataFrame’

index:指定了要分组的列,最终作为行。

columns:指定了要分组的列,最终作为列。

values:指定了要聚合的值(由行列共同影响),需要指定aggfunc参数。

rownames:指定了行名称。

colnames:指定了列名称。

aggfunc:指定聚合函数。必须指定values的值。

margins:布尔值,是否分类统计。默认False。

margins_name:分类统计的名称,默认是“All”。

dropna:是否包含全部是NaN的列。默认是True。

normalize:标准化统计各行列的百分比。如果传all或者True,将输出当前值对所有值得百分比(分母是所有行列的值)。如果传“index”则对行进行百分比统计。如果传“columns”则对列进行百分比统计。如果margins为True,将会把All的值也计算在内进行百分比统计。PS:实际使用过程中,在指定margins=True的时候,把columns设置为一个series没有问题,但是当换成数组的时候这里报错说All不在DataFrame里面。奇怪,有理解深刻的同学请指点,不胜感激。

参考链接

  • https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.crosstab.html?highlight=crosstab
  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值