pandas数据聚合方法——agg方法

《pandas数据聚合方法——agg方法》

简介

在之前的文章中我们就介绍了一些聚合方法,这些方法能够就地将数组转换成标量值。一些经过优化的groupby方法如下表所示:

方法 描述
count 计算分组中非NA值的数量
sum 计算非NA值的和
mean 计算非NA值的平均值
median 计算非NA值的算术中位数
std、var 计算非NA值标准差和方差
min、max 获得非NA值的最小和最大值
prod 计算非NA值的积
first、last 获得第一个和最后一个非NA值

然而并不是只能使用这些方法,我们还可以定义自己的聚合函数,在这里就需要使用到agg方法。

自定义方法

假设我们有这样一个数据:

可以自定义一个计算最大和最小值的函数,并将这个函数传入agg方法中:

面向列的多函数

agg方法不仅能够使用单个函数,而且还能对不同的列使用不同的聚合函数,或一次使用多个函数。对于上面表格中列出的统计方法,可以将函数名以字符串形式写入;

还可以传入多个函数:

当传入多个函数时,得到的列会以这个函数命名。如果想更改列名的话,我们可以传入一个 (name, function) 元组组成的列表。比如:

除此之外,我们还可以针对不同的列使用不同的函数,只需要传入一个字典包含列名到函数的映射:

在这里我们将对 value1 列使用 sum 函数,对 value2 列使用 mean 函数。

无索引形式

使用聚合方法得到的数据默认是把分组的列当成索引,有时候我们需要将分组索引也当成一列,此时就可以使用groupby方法中的 as_index=False 修改:

这样索引值就变成了默认的,数据中又包含了 k1 列。

总结

本文主要介绍agg方法的使用:可以调用自定义的函数;对一列使用多个函数;对不同的列使用不同的函数,最后介绍了无索引的处理方式。在后面的文章中我们还会讲到更多数据转换的函数,聚合方法只不过是其中的一种。

点赞

发表评论

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

14 + 10 =