欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Pandas小知识—map、apply、applymap

时间:2023-04-24

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)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。