apply,map,applymap总结-阿里云开发者社区

开发者社区> 开发与运维> 正文

apply,map,applymap总结

简介: apply,map,applymap总结

Python中apply,map,applymap总结

pandas中DataFrame 数据类型,使用map,apply方法使用较多,做一下总结。参考https://www.cnblogs.com/cymwill/p/7577369.html

总结:

  • apply 用在dataframe上,用于对row或者column进行计算;
  • applymap 用于dataframe上,是元素级别的操作;
  • map (其实是python自带的)用于series上,是元素级别的操作。
df = pd.DataFrame(np.random.randint(0,10,(4, 3)), columns=list('bde'), index=range(4))
df
    b    d    e
0    4    9    3
1    3    1    0
2    4    8    0
3    2    9    9

apply:作用在dataframe的一行或一列上,也可以作用在series上

定义一个函数,

f = lambda x: x.max() - x.min()

这个函数可以结合apply作用在DataFrame类型的行或者列上

# 和加上axis = 0 ,默认是作用在列上
df.apply(f)
b    2
d    8
e    9
dtype: int64
    
# axis = 1 ,默认是作用在行上
df.apply(f,axis =1)
0    6
1    3
2    8
3    7
dtype: int64

关于apply 传入多参数

def test(a,b):
    return a,b
df['d'].apply(test,args=('ok',))
# args只能传入(元组)
0    (9, ok)
1    (1, ok)
2    (8, ok)
3    (9, ok)
Name: d, dtype: object

applymap: 作用在dataframe的每一个元素上

定义f2函数

f2 = lambda x: x+1 if x%2==0 else x

applymap 会将函数作用在DataFrame每一个元素上

df.applymap(f2)
    b    d    e
0    5    9    3
1    3    1    1
2    5    9    1
3    3    9    9

map:作用将函数作用于一个Series的每一个元素

df['b'].map(f2)
0    5
1    3
2    5
3    3
Name: b, dtype: int64

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章