它们的区别就在于应用对象的不同
>>> df1= pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
"age":[23,44,54,32,34,32],
"price":[1200,np.nan,2133,5433,np.nan,4432]},
columns =['id','age','price'])
>> df1
id age price
0 1001 23 1200.0
1 1002 44 NaN
2 1003 54 2133.0
3 1004 32 5433.0
4 1005 34 NaN
5 1006 32 4432.0
**1、map
map()是Series对象的一个函数,DataFrame中没有map(),map()的功能是将一个自定义函数作用于Series对象的每个元素。**
>>> df1['id'].map(lambda x:x+1)
0 1002
1 1003
2 1004
3 1005
4 1006
5 1007
Name: id, dtype: int64
**2、apply
apply()函数的功能是将一个自定义函数作用于DataFrame的行或者列**
>>> df1['id'].apply(lambda x:x+1)
0 1002
1 1003
2 1004
3 1005
4 1006
5 1007
Name: id, dtype: int64
**3、applymap
applymap()函数的功能是将自定义函数作用于DataFrame的所有元素**
>>> df1.applymap(lambda x:x+1)
id age price
0 1002 24 1201.0
1 1003 45 NaN
2 1004 55 2134.0
3 1005 33 5434.0
4 1006 35 NaN
5 1007 33 4433.0
**关于apply传入多个参数:**
>>> data = {'id':range(5),'value':list("abcab")}
>>> frame = pd.DataFrame(data)
>>> frame
id value
0 0 a
1 1 b
2 2 c
3 3 a
4 4 b
>>> def testf(x, str):
... return x,str
>>> frame["id"].apply(testf, args=("ok",))
0 (0, ok)
1 (1, ok)
2 (2, ok)
3 (3, ok)
4 (4, ok)
Name: id, dtype: object
# 注意这里args只能传入(元组),不能是"ok"或("ok")
参考:https://www.cnblogs.com/jason–/p/11427145.html
https://www.cnblogs.com/cymwill/p/7577369.html
https://blog.csdn.net/qq_42665335/article/details/81213175