Pandas中map apply applymap学习

Pandas中map apply applymap可以对DataFrame进行逐行、逐列和逐元素的操作。
依赖的数据集样例:

import pandas as pd
ex_data = pd.DataFrame({
    'class': ['A', 'A', 'B', 'C', 'B', 'B', 'C', 'A', 'B'], 
    'gender': ['男', '女', '女', '男', '女', '男', '男', '男', '男'], 
    'score_math': [95, 96, 85, 93, 84, 88, 59, 88, 89], 
    'score_music': [79, 90, 85, 92, 90, 70, 89, 86, 74]})

在这里插入图片描述

Series数据处理

1 map

将样例中gender列的男替换为1,女替换为0。

1.1 使用字典进行映射

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

在这里插入图片描述
如将gender列映射为英文表示:

gender_df = pd.DataFrame({
    'gender': ['男', '女'],
    'eng_gender': ['male', 'female']})

gender_dict = gender_df.set_index('gender')['eng_gender'].to_dict()
ex_data['gender'] = ex_data['gender'].map(gender_dict, na_action='ignore')

在这里插入图片描述

1.2 使用函数进行映射

def gender_map(x):
    gender = 1 if x == "男" else 0
    return gender

ex_data['gender'] = ex_data['gender'].map(gender_map)

在这里插入图片描述
不管用字典还是函数进行映射,map方法都是把对应的数据逐个当做参数传入字典或函数中,得到映射后的值。

2 apply

与map很类似,但是允许传入功能更为复杂的函数。传入map的函数只能接收一个参数,而apply支持多个参数。比如将数学课的乘积统一减去3分:

def score_math_sub(x, bias):
    return x + bias

# 以元组的方式传入额外的参数
ex_data['score_math'] = ex_data['score_math'].apply(score_math_sub, args=(-3,))

在这里插入图片描述

DataFrame数据处理

1 apply

比如对得分列进行取对数求和的操作:

print(ex_data[['score_math', 'score_music']].apply(np.sum, axis=0))
print(ex_data[['score_math', 'score_music']].apply(np.log, axis=0))

在这里插入图片描述
比如要求数学和音乐两门课的平均分:

def Avg_calculate(series):
    math_score = series["score_math"]
    math_music = series["score_music"]
    Avg_score= (math_score + math_music) / 2
    return Avg_score

ex_data['Avg_score'] = ex_data.apply(Avg_calculate, axis=1)

在这里插入图片描述

2 applymap

用法相对简单,会对DataFrame中的每个单元格执行指定函数的操作。
比如df中全部改为小写:

ex_numdata = ex_data[['class']]
ex_numdata = ex_numdata.applymap(lambda x: x.lower())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值