1、 lambda
lambda原型为:lambda 参数:操作(参数)

lambda函数也叫匿名函数,即没有具体名称的函数,它允许快速定义单行函数,可以用在任何需要函数的地方。这区别于def定义的函数。

lambda与def的区别:

1)def创建的方法是有名称的,而lambda没有。

2)lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。

3)lambda只是一个表达式,而def则是一个语句。

4)lambda表达式” : “后面,只能有一个表达式,def则可以有多个。

5)像if或for或print等语句不能用于lambda中,def可以。

6)lambda一般用来定义简单的函数,而def可以定义复杂的函数。

#单个参数的:
g = lambda x : x ** 2
print g(3)
"""
9
"""
#多个参数的:
g = lambda x, y, z : (x + y) ** z
print g(1,2,2)
"""
9
"""

2、map函数
map是python内置函数,会根据提供函数对指定的序列做映射。

map()函数的格式是:

map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。

把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
map()函数会将指定的函数依次作用于某个序列的每个元素,并返回一个迭代器对象。

例子1:

del square(x):return x ** 2map(square,[1,2,3,4,5])# 结果如下:
[1,4,9,16,25]

例子2:

map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])# 结果如下:
[3,7,11,15,19]

3、apply

Python中apply函数的格式为:apply(func,*args,**kwargs)

当然,func可以是匿名函数。

用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并将元组或者字典中的参数按照顺序传递给参数

解析:args是一个包含按照函数所需参数传递的位置参数的一个元组,简单来说,假如A函数的函数位置为 A(a=1,b=2),那么这个元组中就必须严格按照这个参数的位置顺序进行传递(a=3,b=4),而不能是(b=4,a=3)这样的顺序。kwargs是一个包含关键字参数的字典,而其中args如果不传递,kwargs需要传递,则必须在args的位置留空。

apply的返回值就是函数func函数的返回值。

   def function(a,b):  print(a,b)  apply(function,('good','better'))  apply(function,(2,3+6))  apply(function,('cai','quan'))  apply(function,('cai',),{'b':'caiquan'})  apply(function,(),{'a':'caiquan','b':'Tom'})  

输出结果:

('good', 'better')
(2, 9)
('cai', 'quan')
('cai', 'caiquan')
('caiquan', 'Tom')

有时候,函数的参数可能是DataFrame中的行或者列。

DataFrame中apply的用法

#函数应用和映射
import numpy as np
import pandas as pd
df=pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['utah','ohio','texas','oregon'])
print(df)
"""b         d         e
utah   -0.667969  1.974801  0.738890
ohio   -0.896774 -0.790914  0.474183
texas   0.043476  0.890176 -0.662676
oregon  0.701109 -2.238288 -0.154442
"""#将函数应用到由各列或行形成的一维数组上。DataFrame的apply方法可以实现此功能
f=lambda x:x.max()-x.min()
#默认情况下会以列为单位,分别对列应用函数
t1=df.apply(f)
print(t1)
t2=df.apply(f,axis=1)
print(t2)"""
b    1.597883
d    4.213089
e    1.401566
dtype: float64
utah      2.642770
ohio      1.370957
texas     1.552852
oregon    2.939397
dtype: float64
"""#除标量外,传递给apply的函数还可以返回由多个值组成的Series
def f(x):return pd.Series([x.min(),x.max()],index=['min','max'])
t3=df.apply(f)
#从运行的结果可以看出,按列调用的顺序,调用函数运行的结果在右边依次追加
print(t3)"""b         d         e
min -0.896774 -2.238288 -0.662676
max  0.701109  1.974801  0.738890
"""#元素级的python函数,将函数应用到每一个元素
#将DataFrame中的各个浮点值保留两位小数
f=lambda x: '%.2f'%x
t3=df.applymap(f)
print(t3)
"""b      d      e
utah    -0.67   1.97   0.74
ohio    -0.90  -0.79   0.47
texas    0.04   0.89  -0.66
oregon   0.70  -2.24  -0.15
"""#注意,之所以这里用map,是因为Series有一个元素级函数的map方法。而dataframe只有applymap。
t4=df['e'].map(f)
print(t4)"""
utah     0.74
ohio     0.47
texas   -0.66
oregon  -0.15
"""

参考自:Python中的lambda和apply用法_anshuai_aw1的博客-CSDN博客_apply lambda

Python中的lambda和apply结合使用相关推荐

  1. Python中的lambda和apply用法

    目录 1 lambda 1.1 举最简单的例子 1.2 再举一个普通的例子 2 Apply 2.1 举例 2.2 下面的例子是DataFrame中apply的用法 3 参考文献 1 lambda la ...

  2. Python中的Lambda表达式

    Lambda表达式 (Lambda Expressions) Lambda Expressions are ideally used when we need to do something simp ...

  3. 关于python中lambda函数的描述_关于Python中的lambda函数

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

  4. python的objectproperty,python中property(lambda self: object())简单解释,,最后4行lambda

    python中property(lambda self: object())简单解释,,最后4行lambda 最后4行lambda.问题是:如何运作?它们的含义和结果是什么?您能否以简单的方式显示该声 ...

  5. python中的lambda函数用法--无需定义函数名的函数或子程序,避免代码充斥着大量单行函数

    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序. lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值. 要点: lambda 函数不能包含命令 包含 ...

  6. 关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

  7. lambda在python_在Python中使用lambda高效操作列表的教程

    介绍 lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错 result = lambda x: x * x result(2) # ...

  8. 一文让你彻底掌握【Python中的lambda函数】

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片. 本文和你 ...

  9. python中lambda函数if用法-Python中关于Lambda函数的使用总结

    lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法.作为python初学者,本文整理了lambda的一些基本用法和特点. lambda和def的 ...

最新文章

  1. python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)
  2. 0-1背包使用一维dp数组时为何v要从大到小枚举
  3. Docker多台宿主机间的容器互联-centos7
  4. 爱丁堡大学计算机专业alevel,爱丁堡大学alevel要求?
  5. Analog使用中的一些技巧和总结
  6. html不读取缓存,如何让前端浏览器不进行缓存
  7. Scude导入MySQL_FM2017_FMF赛季更新和真实修正数据库[更新至9.9,超过89000个更新]
  8. Python 告诉你疫情扩散有多可怕
  9. Nginx编译./configure翻译
  10. 查看远端的端口是否通畅3个简单实用案例
  11. 用条件断点寻找E盾的登录、合法、算法和取服务器数据CALL
  12. 家庭财务管理系统的设计与实现(Java毕业设计-Springboot)
  13. Gos —— 搭建基础环境
  14. onlyoffice协同编辑(多人共享编辑)、在线文档编辑,支持word、excel
  15. 链接标签a去掉下划线
  16. python学习之打印机
  17. 推荐一些在线效率工具汇总(数据分析,舆情监测、图片语义识别等)
  18. CDS View_01
  19. 服务器阵列工作原理,阵列卡的工作原理
  20. 100 个手把手、掏心窝子IDEA快捷键从入门到精通教程

热门文章

  1. spring.mvc.static-path-pattern、spring.resources.static-locations
  2. 随机抽样java_实现随机抽样【随机数生成问题】
  3. 分布式锁 哨兵模式_手撕redis分布式锁,隔壁张小帅都看懂了!
  4. 事务超时时间无效_什么是ZooKeeper?ZooKeeper分布式事务详解
  5. Linux进阶之路————用户管理
  6. Spring Boot————Web应用启动时自动执行ApplicationListener用法
  7. oracle状态blocked,oracle 监听状态为BLOCKED
  8. oracle数据库有几个服务_oracle数据库可以有几个数据库
  9. 重定向地址_JavaWeb - Servlet:重定向和转发,状态管理
  10. linux dev alloc name,深入理解Linux网络技术内幕-设备注册和初始化(二)