Pandas中的map(), apply()和applymap()的应用

它们的区别在于应用的对象不同。

1、map()

map() 是一个Series的函数,DataFrame结构中没有map()。map()将一个自定义函数应用于Series结构中的每个元素(elements)。

例子:

df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'],
                   'key2' : ['one', 'two', 'one', 'two', 'one'],
                   'data1' : np.arange(5),
                   'data2' : np.arange(5,10)})
df

这里写图片描述
我们现在用map来对列data1改成保留小数点后三位

df['data1'] = df['data1'].map(lambda x : "%.3f"%x) #lambda在这里其实是在定义一个简单的函数,一个没有函数名的函数。
df

这里写图片描述
你也可以用map把key1的a改成c,b改成d

df['key1'] = df['key1'].map({'a':'c',"b":"d"})
df

这里写图片描述
lambda的好处就是简单、好写、好理解。坏处就是不能重复利用,在重复使用时还是要重新再定义。

2、apply()

apply()将一个函数作用于DataFrame中的每个行或者列

例子:

我们现在用apply来对列data1,data2进行相加

#axis =1 ,apply function to each row. 
#axis =0,apply function to each column,default 0
df['total'] = df[['data1','data2']].apply(lambda x : x.sum(),axis=1 ) 
df

这里写图片描述

df.loc['total'] = df[['data1','data2']].apply(lambda x : x.sum(),axis=0 )
df

这里写图片描述

3、applymap()

将函数做用于DataFrame中的所有元素(elements)

例子:

例如,在所有元素前面加个字符A

def  addA(x):
    return "A" + str(x )
df.applymap(addA)

这里写图片描述

其实,只要转换一下,三者都是可以通用的,就看你写代码的时候,你的对象写的是那个了,是是一列,一行,还是全部。

  • 45
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
pandasapplymapapplymap都是用于对DataFrame或Series的数据进行函数应用的方法,它们的具体使用方式和作用略有不同。 1. apply方法 apply方法是用于对DataFrame或Series的行或列执行函数操作的方法。可以通过传递axis参数来指定是对行还是列进行操作,默认是对列进行操作。apply方法接受一个函数作为参数,并将该函数应用到DataFrame或Series的每一个元素上,然后将结果组合成一个新的DataFrame或Series。 示例: ``` import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) def add_one(x): return x + 1 # 对每一列执行add_one函数 df.apply(add_one) # 对每一行执行add_one函数 df.apply(add_one, axis=1) ``` 2. map方法 map方法是用于对Series的每一个元素执行函数操作的方法。它接受一个函数作为参数,并将该函数应用到Series的每一个元素上,然后将结果组合成一个新的Series。 示例: ``` import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) def add_one(x): return x + 1 # 对Series A 的每一个元素执行add_one函数 df['A'].map(add_one) ``` 3. applymap方法 applymap方法是用于对DataFrame的每一个元素执行函数操作的方法。它接受一个函数作为参数,并将该函数应用到DataFrame的每一个元素上,然后将结果组合成一个新的DataFrame。 示例: ``` import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) def add_one(x): return x + 1 # 对DataFrame的每一个元素执行add_one函数 df.applymap(add_one) ``` 总结: apply方法适用于对DataFrame或Series的行或列执行函数操作;map方法适用于对Series的每一个元素执行函数操作;applymap方法适用于对DataFrame的每一个元素执行函数操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值