-------------------------------------------------------------------------------------------------------------------------------------
#apply(), map(), applymap()区别
apply()可用于Series和DataFrame,DataFrame只能运用到一行或一列,如合计的新增列
map()只适用于Series
applymap()将函数应用到DataFrame中的每一个元素中
# apply(), map(), applymap()区别 #apply(可以Series, 对Series的每一个元素都执行一次函数,也可以在DataFrame中起作用,对DataFrame中的某一行或某一列执行一次函数 import pandas as pd s=pd.Series (data=[10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print (s) print ('1.------------apply()适用Series---------------------------------------------------- ') s=s.apply (lambda x:x+10) print (s) print ('2.------------apply()对DataFrame中的某一行或某一列执行一次函数------------------------------------------ ') df=pd.DataFrame (data=[[10, 20, 30, 40], [11, 22, 33, 44]], index=['a', 'b'], columns=['A', 'B', 'C','D']) print (df) df2=df.apply(lambda x:x.sum(), axis=0) #0表示行, 1表示列,默认是行运算 print (df2) print ('3.-------------map只能应用在Series的每个元素上----#参数可以是一个函数-------------------------------------- ') #map只能应用在Series的每个元素上 df=pd.DataFrame (data=[['男'],['女'], ['男'], ['男']], index=['张三','李四','王五','陈六'], columns=['性别']) print (df) def gender(g): if g=='男': return 0 else: return 1 #map的参数是一个函数 #print (type(df['性别])) df['性别']是一个Series对象 df2=df ['性别']. map(gender) #参数是一个函数 print (df2) print ('4.--------------map只能应用在Series的每个元素上----#参数可以是字典----------------------------------------- ') #map0的参数还可以是一个字典 df3=df['性别'].map({'男':0,'女':1}) print (df3) print ('5.--------------applymap()将函数应用到DataFrame中的每一个元素中----------------------------------------- ') #applymap()将函数应用到DataFrame中的每一个元素中,: 与apply()的区别, apply()只能应用到某列或某行 df=pd.DataFrame(data=[[10, 20, 30, 40], [11, 22, 33, 44]], index=['a', 'b'], columns=['A','B','C','D']) print (df) df=df.applymap(lambda x:x+10) print (df)
a 10 b 20 c 30 d 40 dtype: int64 1.------------apply()适用Series---------------------------------------------------- a 20 b 30 c 40 d 50 dtype: int64 2.------------apply()对DataFrame中的某一行或某一列执行一次函数------------------------------------------ A B C D a 10 20 30 40 b 11 22 33 44 A 21 B 42 C 63 D 84 dtype: int64 3.-------------map只能应用在Series的每个元素上----#参数可以是一个函数-------------------------------------- 性别 张三 男 李四 女 王五 男 陈六 男 张三 0 李四 1 王五 0 陈六 0 Name: 性别, dtype: int64 4.--------------map只能应用在Series的每个元素上----#参数可以是字典----------------------------------------- 张三 0 李四 1 王五 0 陈六 0 Name: 性别, dtype: int64 5.--------------applymap()将函数应用到DataFrame中的每一个元素中----------------------------------------- A B C D a 10 20 30 40 b 11 22 33 44 A B C D a 20 30 40 50 b 21 32 43 54