-------------------------------------------------------------------------------------------------------------------------------------
#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
浙公网安备 33010602011771号