Pandas学习笔记05-分组统计与数据透视表
对数据集进行分类,并在每组数据上进行聚合操作,是非常常见的数据处理,类似excel里的分组统计或数据透视表功能。
pandas提供了比较灵活的groupby分组接口,同时我们也可以使用pivot_table进行透视处理。
1.分组
分组函数groupby,对某列数据进行分组,返回一个Groupby对象。
在进行groupby分组后,我们可以对分组对象进行各种操作,比如求分组平均值mean()
很多时候,我们需要返回dataframe型数据进行二次操作
size()方法可以获取各分组的大小
遍历分组
[[]]和[]在返回结果上的区别
有时候,我们可以通过传递函数进行分组,简化代码
2.聚合
常见的聚合函数如下:
功能 | 描述 |
---|---|
mean() |
计算组的平均值 |
sum() |
计算组值之和 |
size() |
计算组大小 |
count() |
计算组计数 |
std() |
组的标准偏差 |
var() |
计算组的方差 |
sem() |
均值的标准误 |
describe() |
生成描述性统计 |
first() |
计算组值的第一个 |
last() |
计算组值的最后一个 |
nth() |
取第n个值,如果n是一个列表,则取一个子集 |
min() |
计算组值的最小值 |
max() |
计算组值的最大值 |
简单的分组聚合操作
同时使用多种聚合方法
对聚合结果列进行命令
对不同的列进行不同的聚合方法
3.数据透视
数据透视采用pivot_table方法,和excel数据透视表功能类似,其实可以和groupby分组统计进行相互转化
它带有许多参数:
data:一个DataFrame对象。
values:要汇总的一列或一列列表。
index:与数据或它们的列表具有相同长度的列,Grouper,数组。在数据透视表索引上进行分组的键。如果传递了数组,则其使用方式与列值相同。
columns:与数据或它们的列表具有相同长度的列,Grouper,数组。在数据透视表列上进行分组的键。如果传递了数组,则其使用方式与列值相同。
aggfunc:用于汇总的函数,默认为numpy.mean。
数据透视操作对不同列使用不同的方法
margins增加合计项