蓝绝

博客园 首页 新随笔 联系 订阅 管理

 

-------------------------------------------------------------------------------------------------------------------------------------

#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

 

posted on 2022-11-20 12:26  蓝绝  阅读(75)  评论(0编辑  收藏  举报