专栏首页数据医生专栏Python中的map()、apply()和applymap()函数

Python中的map()、apply()和applymap()函数

map()

map(function, args)

map()函数对序列args中的每个值进行相同的function操作,最终得到一个结果序列。

大多数情况下,我们需要把列表中的所有元素一个一个地传递给函数,并收集输出,比如说:

x_s = [1, 2, 3]
y_s = [3, 2, 1]
result = list()

for x, y in zip(x_s, y_s):
    result.append(x + y)

运行结果:

map()可以让我们使用一种简单且优雅得多的方式实现。 示例

x_s = [1, 2, 3]
y_s = [3, 2, 1]

# 对序列x_s和y_s中的对应元素进行相加
a = map(lambda x, y:x+y, x_s, y_s)

map()函数生成的结果序列不会把全部结果显示出来,要想获得结果序列,可以使用list()方法。

大多数情况下,我们使用匿名函数(lambda)来配合map()

map()不仅可用于一列表的输入,甚至可以用于一列表的函数

def multiply(x, y):
    return (x * y)

def add(x, y):
    return (x + y)

funcs = [multiply, add]    # 包含两个函数的列表

for x, y in zip(x_s, y_s):
    value = map(lambda f: f(x, y), funcs)
    print(list(value))

运行结果:

apply()和applymap()

在DataFrame中与map()函数类似的函数有两个:

  1. apply()
  2. applymap()

apply()

apply()函数主要用于对DataFrame中的某一column或row中的元素执行相同的函数操作。 新建一个DataFrame如下:

对某一列(column)进行操作

# 对C1列中的每一个元素加1
df["C1"].apply(lambda x:x+1)

运行结果:

对某一行(row)进行操作

# 对第1行的每一个元素加1
df.loc[1].apply(lambda x:x+1)

运行结果:

当然,apply()也可对DataFrame的每一个元素进行操作

# 对df表中的每一个元素加1
df.apply(lambda x:x+1)

运行结果:

applymap()

applymap()函数用于对DataFrame中的每一个元素执行相同的函数操作。

# 对df表中的每一个元素加1
df.applymap(lambda x:x+1)

运行结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Matplotlib绘图时x轴标签重叠的解决办法

    在使用Matplotlib画图时,我遇到了一个尴尬的情况,那就是当x轴的标签名字很长的时候,在绘制图形时,发生了x轴标签互相重叠的情况。 本文主要通过一个简单...

    数据医生
  • 文件 | Python

    定位读写(从一个指定位置开始进行读写) 1.获取当前的读写位置 tell( )

    数据医生
  • 数据分析常用的Excel函数

    FIND 和 SEARCH 两个函数几乎相同,区别在于FIND 精确查找,区分大小写; SEARCH 模糊查找,不区分大小写。

    数据医生
  • Python lambda介绍

    在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda?

    战神伽罗
  • C++11——lambda表达式

    定义: C++11新增了很多特性,lambda表达式(lambda expression)就是其中之一,很多语言都提供了 lambda 表达式,如 Pyth...

    Dabelv
  • Python3学习笔记 | 二十一、Python的函数-函数的高级话题

    当我们使用函数时,就开始面对如何将组件组合在一起的选择。例如,如何将任务分解成为更有针对性的函数(导致了聚合性),函数将如何通讯(耦合性)等。我们要深入考虑函数...

    TeamsSix
  • 细说Python的lambda函数用法,建议收藏

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中...

    stormwen
  • 医学图像处理案例(六)——生成血管三维模型

    在前面的文章中,已经分享了人体肋骨和肺组织分割生成三维模型的例子。今天将继续分享人体脑部血管分割并生成三维模型的案例。

    用户7498388
  • python map函数

    截至到目前为止,其实我们已经接触了不少的python内置函数,而map函数也是其中之一,map函数是根据指定函数对指定序列做映射,在开发中使用map函数也是有效...

    猿说编程[Python和C]
  • BZOJ3687: 简单题(dp+bitset)

    Description 小呆开始研究集合论了,他提出了关于一个数集四个问题: 1.子集的异或和的算术和。 2.子集的异或和的异或和。 3.子集的算术和的算术和...

    attack

扫码关注云+社区

领取腾讯云代金券