前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中的map()、apply()和applymap()函数

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

作者头像
活用数据
发布2019-11-04 14:00:46
6.8K0
发布2019-11-04 14:00:46
举报
文章被收录于专栏:数据医生专栏

map()

代码语言:javascript
复制
map(function, args)

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

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

代码语言:javascript
复制
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()可以让我们使用一种简单且优雅得多的方式实现。 示例

代码语言:javascript
复制
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()不仅可用于一列表的输入,甚至可以用于一列表的函数

代码语言:javascript
复制
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)进行操作

代码语言:javascript
复制
# 对C1列中的每一个元素加1
df["C1"].apply(lambda x:x+1)

运行结果:

对某一行(row)进行操作

代码语言:javascript
复制
# 对第1行的每一个元素加1
df.loc[1].apply(lambda x:x+1)

运行结果:

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

代码语言:javascript
复制
# 对df表中的每一个元素加1
df.apply(lambda x:x+1)

运行结果:

applymap()

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

代码语言:javascript
复制
# 对df表中的每一个元素加1
df.applymap(lambda x:x+1)

运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • map()
  • apply()和applymap()
    • apply()
      • applymap()
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档