详谈pandas中agg函数和apply函数的区别

yipeiwu_com6年前Python基础

在利用python进行数据分析 这本书中其实没有明确表明这两个函数的却别,而是说apply更一般化.

其实在这本书的第九章‘数组及运算和转换'点到了两者的一点点区别:agg是用来聚合运算的,所谓的聚合当然是合成的成分比较大些,这一节开头就点到了:聚合只不过是分组运算的其中一种而已。它是数据转换的一个特例,也就是说,它接受能够将一维数组简化为标量值的函数。

当然这两个函数都是作用在groupby对象上的,也就是分完组的对象上的,分完组之后针对某一组,如果值是一维数组,在利用完特定的函数之后,能做到简化的话,agg就能调用,反之,如果比如自定义的函数是排序,或者像是书中278页所定义的top这一类的函数,当然是agg所不能解决的,这时候用apply就可以解决。因为他更一般化,不存在什么简化,什么一维数组,什么标量值。

以上纯属个人见解,不喜勿喷。

这篇详谈pandas中agg函数和apply函数的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python生成指定尺寸缩略图的示例

python生成指定尺寸的缩略图 复制代码 代码如下:def MakeThumb(path, sizes=(75, 32, 16)):    """&nbs...

python用列表生成式写嵌套循环的方法

将两个嵌套for循环写成一个列表生成式 如,有一个嵌套列表,a=[[1,2],[3,4],[5,6]],要提取列表里的每一个元素 用for循环处理: for i in a: fo...

python基础教程之序列详解

sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有...

pytorch forward两个参数实例

以channel Attention Block为例子 class CAB(nn.Module): def __init__(self, in_channels, out_c...

python 对字典按照value进行排序的方法

字典按照value进行排序共有三种方法 d = {'a': 1, 'b': 4, 'c': 2, 'f' : 12} # 第一种方法,key使用lambda匿名函数取value进...