记录第 17 天(2):pd.pivot_table

2020-09-22  本文已影响0人  哼哼哼哼哼哼哼哼哼哼哼哼哼哼哼

最近有一些数据分析任务,所以重温了下pd.pivot_table。

pivot_table 和Excel中的数据透视表本质是一样的,都是通过行字段和列字段对值字段进行分类汇总,可选项包括汇总方式,空值的填写方式和是否需要总计行/列,具体为:


数据源: data,首位参数;

行字段: index,先后顺序代表层级关系;

列字段: columns,先后顺序代表层级关系;

值字段: values,如果有多个,代表针对不同的值分别进行分类汇总;

汇总方式: aggfunc,包括:count, sum, min, max,mean, median, std, var;

合计行列:margins: True/False;

合计行列名:margins_name;

空值填充:fill_value


pivot_table 所生成的也是一个 data frame 型数据,因此后­续对它的微调主要采用 data frame 的方式进行行:


重排序(直接指定): pd. reindex;

重排序(按值排序): pd. sort._values 


排序完成后我碰到了个问题,由于之前用 margins 参数在 pivot_table 中生成了合计行,因此在进行 sort_values时合计行因为数值是最大的,就跑到了最上面,而我想按照惯例把合计行放到最下面。想到的办法是先得到一个不含合计行的 index ,然后再把“合计”单独加到index 的末尾,最后再用这个index 来索引原pivot_tabel,得到一个总计行在最后的新pivot_tabel。期间用到的方法如下:


Series 转为数组: pd.tolist;

数组添加元素:list_1+ list_2


上一篇 下一篇

猜你喜欢

热点阅读