数据透视表

数据透视表是电子表格程序和其他数据分析软件中常见的数据汇总工具。

它根据一个或多个表聚合一张表的数据,将数据在矩形格式中排列,其中一些分组键是沿着行的,另一些是沿着列的。

Python中的pandas透视表是通过groupby工具以及使用分层索引的重塑操作实现的。DataFrame拥有一个pivot_table方法,并且还有一个顶层的pandas.pivot_table函数。

除了为groupby提供一个方便接口,pivot_table还可以添加部分总计,也称为边距。

tips是一个小费数据集

python 数据透视表 行标签计数 python数据透视表怎么排序_数据分析


python 数据透视表 行标签计数 python数据透视表怎么排序_数据分析_02

假如此刻要计算一张在行方向上按day和smoker排列的分组平均值(默认的pivot_table聚合操作)的表:

python 数据透视表 行标签计数 python数据透视表怎么排序_聚合函数_03

只在tip和size上聚合,并根据time分组:

python 数据透视表 行标签计数 python数据透视表怎么排序_数据分析_04

通过传递margins=True来扩充这个表来包含部分总计。这会添加All行和列标签,其中相应的值是单层中所有数据的分组统计值:

python 数据透视表 行标签计数 python数据透视表怎么排序_python 数据透视表 行标签计数_05

要使用不同的聚合函数时,将函数传递给aggfunc。例如,'count’或者len将给出一张分组大小的交叉表(计数或出现频率):

python 数据透视表 行标签计数 python数据透视表怎么排序_数据分析_06

如果有空值,可以用fill_value填充:

python 数据透视表 行标签计数 python数据透视表怎么排序_聚合函数_07

选项名

描述

values

需要聚合的列名;默认情况下聚合所有数值型的 列

index

在结果透视表的 行 上进行分组的列名或其他分组键

columns

在结果透视表的 列 上进行分组的列名或其他分组键

aggfunc

聚合函数或函数列表(默认情况是’mean’);可是groupby上下文的任意有效函数aggfunc=[np.sum] / aggfunc=[np.sum, np.mean]

fill_value

在结果表中替换缺失值的值

dropna

如果为True,将不含所有条目均为NA的 列

margins

添加 行/列 小计和总计(默认为False)

交叉表crosstab

交叉表是是数据透视表的一个特殊情况,计算的是分组中的频率。

crosstab的前两个参数可是数组、Series或数组的列表:

python 数据透视表 行标签计数 python数据透视表怎么排序_透视表_08


python 数据透视表 行标签计数 python数据透视表怎么排序_数据_09