首页 > 其他分享 >pandas 的 apply() 函数

pandas 的 apply() 函数

时间:2022-08-19 20:55:59浏览次数:60  
标签:函数 Series DataFrame 数据处理 apply pandas axis

 

一、apply() 函数 

DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)

参数解释:

(1)func:就是函数,不管是自定义的函数,还是匿名函数lambda

(2)axis:0表示以列作为一组计算,结果按行→,1表示以行作为一组(每条记录)计算,结果按列↓,默认axis=0

 

二、apply的使用总共基本用于三处:

(1)是你要对每条记录进行遍历用函数计算出一个值;此时,axis=1

(2)是你要对某一列进行操作;此时,axis=0

(3)是你groupby后要对每个group后的字表df 

df.apply(lambda x:func(x,args**),axis=1)
df.apply(lambda x:func(x,args**),axis=0)
df.groupby([column1]).apply(lambda x:func(x,args**))

 

三、理解apply核心在于明确两个环节:调度函数和作用对象。

调度函数就是apply接收的参数,既可以是Python内置的函数,也支持自定义函数,或者匿名函数lambda。只要符合指定的作用对象(即是标量scalar,还是一行或一列series,亦或一个dataframe)即可。

作用对象则取决于调用apply的对象类型,具体来说:

  • 一个Series对象调用apply时,数据处理函数作用于该Series的每个元素上,即作用对象是一个标量,实现从一个Series转换到另一个Series;

  • 一个DataFrame对象调用apply时,数据处理函数作用于该DataFrame的每一行或者每一列上,即作用对象是一个Series,实现从一个DataFrame转换到一个Series上;

  • 一个DataFrame对象经过groupby分组后调用apply时,数据处理函数作用于groupby后的每个子dataframe上,即作用对象还是一个DataFrame(行是每个分组对应的行;列字段少了groupby的相应列),实现从一个DataFrame转换到一个Series上。

apply应用在Pandas中,其核心功能其实可以概括为一句话:我本身不处理数据,我们只是数据的搬运工。

apply自身是不带有任何数据处理功能的,但可以用作是对其他数据处理方法(函数)的调度器,至于调度什么又为谁而调度呢?这是理解apply的两个核心环节:

  • 调用什么?调用的是apply函数接收的参数,即apply接收一个数据处理函数为主要参数,并将其应用到相应的数据上。所以调用什么取决于接收了什么样的数据处理函数;

  • 为谁调度?即apply调用数据处理函数,其作用对象是谁?或者说数据处理的粒度是什么?答案是数据处理的粒度包括了点线面三个层面:即可以是单个元素(标量,scalar),也可以是一行或一列(series),还可以是一个dataframe

标签:函数,Series,DataFrame,数据处理,apply,pandas,axis
From: https://www.cnblogs.com/zwt20120701/p/16603240.html

相关文章

  • 变量的提升 与 函数的预解析问题 (函数声明 的两种方法 声明式 和 表达式式)
    1·变量的提升 console.log(num);varnum=1; 在正常的代码的运行顺序上来说运行结果直接报错 ......
  • C++模板(函数模板 & 类模板)
    模板编程可称范型编程,是一种忽视数据类型的编程方式,这样的好处是什么?且看下面一个例子:简单使用求解最值问题,返回两个值中的较大值:intMax(inta,intb){ returna>......
  • 一些pandas问题
    1、WARNING***filesize(48130)not512+multipleofsectorsize(512)解决办法:importpandasaspdimportxlrdwb=xlrd.open_workbook('file.xls',logfile=......
  • Python基础之reduce函数
    哈喽大家好,今天说一下reduce函数的使用方法,以及与for循环的对比。reduce函数原本在python2中也是个内置函数,不过在python3中被移到functools模块中。reduce函数先从......
  • python基础-函数式编程
    概念:电脑运算视作数学上的函数计算高阶函数:map,reduce,filter无副作用,相同的参数调用时钟产生同样的结果闭包Closure例子:defcache(func):store={}#外部自由......
  • 练习7:函数记忆相关
    何为函数记忆函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据。常用于,复杂且有重复的计算。例如:斐波那契数列的计算under......
  • @FunctionalInterface 函数式接口
    作用:在编译过程中,校验该接口只有一个抽象方法;解释:除了唯一的抽象方法外,可以包含已经有实现的方法(包括静态方法);使用:可以使用Lambda表达式来表示该接口的一个实现:@Functi......
  • Python中,函数的返回值
    deffun(num):odd=[]#存奇数even=[]#存偶数foriinnum:ifi%2:odd.append(i)else:even.append(i)re......
  • python-zip()函数-zip*函数-压缩-解压缩
    python-zip()函数-压缩-解压缩zip()函数:将多个序列(列表、元组、字典、集合、字符串以及range()构成的列表)按一定规则重新组成一组元组。常与list()函数搭配使用,list......
  • python菜鸟学习: 10. 函数的基本用法
    #-*-coding:utf-8-*-#回参函数deftest01():return0#以元组返回参数deftest02():return1,[1,2,3,4,5],{"name":"liyuzhoupan"}#有参函数deftest......