map是针对单列,apply是针对多列,applymap是针对全部元素
一、map
使用字典或者函数进行映射,将对应的数据逐个当作参数传入字典或者函数中,得到映射后的值
将A列的“男”替换为1,“女”替换为0
1、使用字典映射
df['A']= df['A'].map({'男':1,'女':0})
2、使用函数
def def_map(x):
res= 1 if x== '男' else 0
return res
df['A']= df['A'].map(def_map) # 仅传入函数名,无需带括号
二、apply
用法与map类似,但是可以传入更为复杂的函数(传入map的函数只能接受一个参数)
1、对A和B相加
df.loc['C'] = df[['A','B']].apply(lambda x : x.sum(), axis = 0) # 列相加
df['C'] = df[['A','B']].apply(lambda x : x.sum(), axis = 1) # 行相加
2、对A、B列的数据若大于10则加1否则不变
df[['A','B']]= df[['A','B']].apply(lambda x:x+1 if x>10 else x)
3、对C列的数据若大于10则加1小于10则减一否则不变
df['C']= df['C'].apply(lambda x:x+1 if x>10 else (x-1 if x<10 else x))
三、applymap
用法类似,作用范围是每个单元格
将df所有数据后面添加"!"
1、使用匿名函数
df= df.applymap(lambda x:str(x)+'!')
2、使用函数
def str(n):
return str(n)+'!'
df= df.applymap(str)