实现数据分析指标计算的常用操作:
越往底层书写越难,应用范围越广。越往上层书写越简单,应用范围越窄
透视表(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]: