其他分享
首页 > 其他分享> > pandas中map,apply和applymap的用法

pandas中map,apply和applymap的用法

作者:互联网

1.map

用于series的一种方法,用于替换掉series中的数值,或者新增一列对应到series的数值

首先建立一个dataframe

 import pandas as pd   
 import numpy as np

music_genre=['hiphop','jazz','pop','funk','rock','classical','r&b','electronic'] 
city=['广州市','厦门市','深圳市','西安市','武汉市','上海市','成都市','郑州市','重庆市','北京市','天津市'] 
data=pd.DataFrame({
    'gender': [ x for x in np.random.randint(0,2,100)],
    'age':np.random.randint(20,80,100),
    'city':[city[i] for i in np.random.randint(len(city),size=100)],
     'music_genre':[music_genre[x] for x in np.random.randint(len(music_genre),size=100)] }) 
     
 data 

在这里插入图片描述

map用于当我们要对Series的每一个数据进行操作时,当对Series中的数据分类处理时候非常方便
此案例中我们可以使用map方法可以新增一列"gender_in_chinese”,对应到原表的gender,0对应女,1对应男,使用字典的方法对应

data['gender_in_Chinese']=data.gender.map({1:'男',0:'女'}) 

和下面代码等价

def gt(x):
    if x==1:
        x='男'
    else:
        x='女'
    return x 
    
data['gender_in_Chinese']=data.gender.map(gt) 

或者

data['gender_in_Chinese']=data.gender.map(lambda x:'男' if x==1 else '女')

在这里插入图片描述

2. apply的用法

2.1用于series

可以对指定列调用函数,可以是简单函数,也可以是自定义的复杂函数,

例如:将data的city列舍弃最后一个字符“市”,只保留前两个字

def cut(str):
    return str[:2] 
    data.city=data.city.apply(cut) 
data 

在这里插入图片描述

另外,apply内的函数可以传入多个参数,假设我们现在需要把age这一列划分为几个区间,20-某个年龄是青年,某个年龄到60属于中年,60-80是老年,那么此时需要两个参数,一个是Series的age,另一个是介于青年和中年的年龄

def age_range(age,x):
    if age>20&age<x:
        age_range='青年'
    elif age<60:
        age_range='中年'
    else:
        age_range='老年'
    return age_range 

data['age_range']=data.age.apply(age_range,args=(-3,))

结果如下:
在这里插入图片描述

2.2 用于dataframe

(1)对每行或者每列起作用,可求每行的和/最大值/平均值等,也可以是其他自定义的函数
例如下面这个DataFrame
在这里插入图片描述
我们可以对它求每列的和
在这里插入图片描述

求每列的最大值减去最小值
在这里插入图片描述

求每列的正数之和
在这里插入图片描述

(2)以data为例,apply可以和groupby结合 求出每种性别分类下年龄最大的人

data.groupby('gender')['age'].apply(max)

在这里插入图片描述

3.applymap

用于DataFrame,对每个element起作用,常用于数字格式化
例如有这样一个DataFrame,用applymap的方法把数字统一保留两位小数
在这里插入图片描述

df.applymap(lambda x:'{:.2f}'.format(x))

或者

df.applymap(lambda x:"%.2f" % x)

结果
在这里插入图片描述

标签:map,applymap,city,gender,age,apply,data,pandas
来源: https://blog.csdn.net/MONSTERSU/article/details/112315749