Python数据透视功能之 pivot_table()介绍

共850字,阅读时间3分钟



pivot_table

pivot()函数没有数据聚合功能,要想实现此功能,需要调用Pandas包中的第三个顶层函数:pivot_table(),在pandas中的工程位置如下所示:


pandas

  |

pivot_table()



如下,构造一个df实例:


Python数据透视功能之 pivot_table()介绍


调用如下操作:


Python数据透视功能之 pivot_table()介绍


参数index指明A和B为行索引,columns指明C列取值为列,聚合函数为求和,values是在两个轴(index和columns)确定后的取值用D列。得到结果如下:


Python数据透视功能之 pivot_table()介绍


其中聚合函数可以更加丰富的扩展,使用多个。如下所示,两个轴的交叉值选用D和E,聚合在D列使用np.mean(), 对E列使用np.sum, np.mean, np.max, np.min


Python数据透视功能之 pivot_table()介绍


得到结果如下所示:


Python数据透视功能之 pivot_table()介绍


函数原型


Python数据透视功能之 pivot_table()介绍


fill_value: 空值的填充值;

dropna: 如果某列元素都为np.nan, 是否丢弃;

margins: 汇总列, margins_name: 汇总名称


margins参数默认为False,如果设置为True,会得到每列的汇总,如下df实例


Python数据透视功能之 pivot_table()介绍


设置margins为True,汇总行索引为名称自定义为self_name:


Python数据透视功能之 pivot_table()介绍


注意


margins设置为True后,目前pandas 0.22.3版本只支持聚合函数为单个元素,不支持为list的情况,如下:


Python数据透视功能之 pivot_table()介绍


会报出异常:


Python数据透视功能之 pivot_table()介绍


透过pivot_table聚合功能源码(如下所示),我们发现它本身是通过调用groupby()及其agg()实现的。

“`python
grouped = data.groupby(keys, observed=False)
agged = grouped.agg(aggfunc)
“`


总结


其他使用细节,会以后慢慢补充,pivot_table功能类似于excel中的数据透视表,在做数据分析时经常会用到。大家不妨平时中多使用现成的API,加速工作效率。

关于作者

杰夫(jerfo0)

杰夫(jerfo0)

一个活的真实,耿直的boy。
坚定相信爱情,向往自由,对世界充满好奇心。热爱美剧、海贼王、一切户外运动、旅行...
职业:互联网运营。
生命不息,折腾不止,燥起来!!

查看全部帖子

发表评论

邮箱地址不会被公开。 必填项已用*标注