Python apply函数
1、介绍
apply函数是pandas里面所有函数中自由度最高的函数。该函数如下:
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。
这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据 结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数 会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
2、样例
import numpy as np
import pandas as pdf = lambda x: x.max()-x.min()df = pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['utah', 'ohio', 'texas', 'oregon'])
print(df)t1 = df.apply(f)
print(t1)t2 = df.apply(f, axis=1)
print(t2)
输出结果如下所示:
b d e
utah 1.106486 0.101113 -0.494279
ohio 0.955676 -1.889499 0.522151
texas 1.891144 -0.670588 0.106530
oregon -0.062372 0.991231 0.294464b 1.953516
d 2.880730
e 1.016430
dtype: float64utah 1.600766
ohio 2.845175
texas 2.561732
oregon 1.053603
dtype: float64
3、性能比较
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
df = pd.DataFrame({'a': np.random.randn(6),'b': ['foo', 'bar'] * 3,'c': np.random.randn(6)})def my_test(a, b):return a + bprint(df)df['Value'] = df.apply(lambda row: my_test(row['a'], row['c']), axis=1) # 方法1
print(df)df['Value2'] = df['a'] + df['c'] # 方法2
print(df)
输出结果如下:
a b c
0 -1.194841 foo 1.648214
1 -0.377554 bar 0.496678
2 1.524940 foo -1.245333
3 -0.248150 bar 1.526515
4 0.283395 foo 1.282233
5 0.117674 bar -0.094462a b c Value
0 -1.194841 foo 1.648214 0.453374
1 -0.377554 bar 0.496678 0.119124
2 1.524940 foo -1.245333 0.279607
3 -0.248150 bar 1.526515 1.278365
4 0.283395 foo 1.282233 1.565628
5 0.117674 bar -0.094462 0.023212a b c Value Value2
0 -1.194841 foo 1.648214 0.453374 0.453374
1 -0.377554 bar 0.496678 0.119124 0.119124
2 1.524940 foo -1.245333 0.279607 0.279607
3 -0.248150 bar 1.526515 1.278365 1.278365
4 0.283395 foo 1.282233 1.565628 1.565628
5 0.117674 bar -0.094462 0.023212 0.023212
注意:当数据量很大时,对于简单的逻辑处理建议方法2(个人处理几百M数据集时,方法1花时200s左右,方法2花时10s)!!!
Python apply函数相关推荐
- python apply()函数
python apply函数的具体的含义: apply(func [, args [, kwargs ]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数.args是一个包含将要提供 ...
- python apply函数取数据中的后四位_python 实现rolling和apply函数的向下取值操作
我就废话不多说了,大家还是直接看代码吧! import pandas as pd def get_under_rolling(df,window,user,name): df[name] = df[u ...
- python apply函数的用法_Python pandas.DataFrame.apply函数方法的使用
DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **k ...
- python apply函数_8 个 Python 高效数据分析的技巧
(给Python开发者加星标,提升Python技能) 编译:专知/Yingying, Jiahui,英文原作:Conor Dewey 不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数 ...
- python apply函数_python玄学之 apply函数的axis参数
不知道小伙伴们学习python的dataframe时,是否遇到一个疑惑,apply参数axis的具体含义是什么? 官方文档解释如下:https://pandas.pydata.org/pandas-d ...
- python apply函数的用法
函数格式为:apply(func,*args,**kwargs) 用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并肩元组或者字典中的参数按照顺序传递给参数 解析:arg ...
- python里apply用法_Python apply函数的用法
Python apply函数的用法 发布于 2014-08-07 21:02:24 | 674 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对象.解释型计 ...
- python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD)
python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD.Median Absolute Devi ...
- python 多进程 multiprocessing 进程池 pool apply_async()函数与apply()函数的用法
apply函数主要用于传递不定参数,主进程会被阻塞到函数执行结束.也就是说只有apply里面的内容被执行完了,才会进行执行主函数的内容. 参考文章1:python进程池Pool的apply与apply ...
最新文章
- npm 卸载_完全免费!GitHub发布软件包管理服务:NPM瑟瑟发抖
- php 文档在线查看器,Office Web Viewer 在线Office文档查看器API
- 英语学习APP的案例分析
- jar打包 剔除第三方依赖以及它的依赖_maven打包成第三方jar包且把pom依赖包打入进来的方法...
- JavaScript中null与undefined的比较
- 在jupyter界面误删了jupyter notebook
- nutshell_Nutshell中的Java 8语言功能-第1部分
- C++远征之封装篇——对象数组,对象成员
- 你尝试登录的服务器语言不通,七骑士国内服务器正式上线后,各种登录问题解决方案汇总...
- 在html中 标记 lt pre gt,HTML pre标记会导致换行符
- Centos7 Redis安装
- 随机生成名字的Android页面
- spring注入sessionfactory
- 阿里数据中台维度建模规范、维度模型设计及模型实施方法论
- 一个遮罩层怎么遮罩两个图层_遮罩动画是由两个图层组成的,一个是遮罩层,一个是被遮罩层。...
- 亚马逊linux密码,Linux、Centos、Ubuntu亚马逊服务器开启密码远程,启用root账号
- python遥控汽车玩具_分享 | 撞坏遥控车后,有个技术大牛爸爸是种怎样的体验
- android 10系统下载地址,Android 10正式版
- qt在表格中如何画线_Qt之表格控件蚂蚁线
- Apache Impala: Impala的java开发
热门文章
- oracle 删除表从回收站恢复
- Cocostudio 1.6 下载地址
- 【转】Java 内存模型及GC原理
- [hadoop新实战2]hadoop伪分布式安装序列(支持ubuntu和redhat)
- (转)IIS7 配置ASP.NET 2.0, WCF, ASP.NET MVC
- java web分层的思想
- 【测试】ABAP发送HTML格式邮件FM
- 【常识】高尔夫计分规则
- 自定义维护视图变量(Maintenance view variant)
- ABAP实例:如何设计和使用自定义的权限对象