Pandas透视表和交叉表

如题所述

第1个回答  2022-06-22

实现数据分析指标计算的常用操作:

越往底层书写越难,应用范围越广。越往上层书写越简单,应用范围越窄

透视表(pivot table)是各种电子表格程序和数据分析软件中一种高级数据汇总表格形式

它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中

会不会操作透视表,是衡量一个人能否做数据分析项目的基准

In [1]:

文件tips.csv

In [3]:

Out[3]:

In [4]:

Out[4]:

使用Pandas自带透视表函数 pivot_table 实现

In [10]:

Out[10]:

使用原生使用分组聚合(groupby)和重塑(unstack)功能实现

In [15]:

Out[15]:

In [16]:

Out[16]:

In [17]:

Out[17]:

In [20]:

Out[20]:

In [22]:

Out[22]:

In [24]:

Out[24]:

In [27]:

Out[27]:

In [29]:

Out[29]:

In [30]:

Out[30]:

In [31]:

Out[31]:

All统计求的是所有行或所有列的平均值,不是透视表那几行几列的平均值

In [32]:

Out[32]:

In [33]:

Out[33]:

In [34]:

Out[34]:

In [35]:

Out[35]:

求所有dinner下tip的平均值

In [36]:

Out[36]:

In [37]:

Out[37]:

In [42]:

Out[42]:

In [43]:

Out[43]:

透视表默认聚合函数为mean平均值

如想使用非默认mean的其他的聚合函数,传给aggfunc即可(传入函数名称或函数字符串)

如使用count或len可得到有关分组大小的交叉表(计数或频率)

传入值类型,一般为 函数名字符串,函数名,numpy函数名:

In [48]:

Out[48]:

fill_value参数填充缺失值(NA)

In [50]:

Out[50]:

In [52]:

Out[52]:

交叉表(cross-tabulation,简称crosstab)是一种用于计算分组频率的特殊透视表

In [53]:

Out[53]:

In [56]:

Out[56]:

In [57]:

Out[57]:

In [58]:

Out[58]:

In [64]:

Out[64]:

In [67]:

Out[67]:

In [69]:

Out[69]:

In [71]:

Out[71]:

In [72]:

Out[72]:

行索引:time,day

列索引:smoker

使用交叉表方法实现

In [75]:

Out[75]:

In [77]:

Out[77]:

使用透视表方法实现

In [79]:

Out[79]:

In [80]:

Out[80]:

使用分组聚合轴旋转实现

In [84]:

Out[84]:

相似回答
大家正在搜