数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南

news2025/1/20 3:51:33

数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南

​ 在 Pandas 中,applymapapplymap 是常用的数据转换和处理方法,它们为数据分析和数据处理提供了灵活的功能。这些方法可以根据具体的需求选择合适的方法进行操作。

apply:

apply 方法是 Pandas 中最常用的方法之一。它可用于在 DataFrame 或 Series 的上应用函数。apply 方法接受一个函数作为参数,并将该函数应用于指定的轴或维度。返回值是一个新的 Series 或 DataFrame 对象,其中包含应用函数后的结果。

import pandas as pd

def square(x):
    return x ** 2

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)
# 应用自定义函数到列
df['A'] = df['A'].apply(square)
print(df)

在这里插入图片描述

当然,对于这种简单的语句,我们可以直接使用lamba表达式来代替。

如下:

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)
# 应用自定义函数到列
df['A'] = df['A'].apply(lambda x: x ** 2)
# x相当于这一列中的每一个元素,对每一个元素都平方
print(df)

map:

map 方法用于在 Series 对象上应用函数或字典映射。它将函数或映射应用于 Series 中的每个元素,并返回一个新的 Series 对象,其中包含映射后的结果。

import pandas as pd

# 创建一个示例 Series
data = pd.Series([1, 2, 3])

# 应用字典映射到元素
result = data.map({1: 'A', 2: 'B', 3: 'C'})
print(result)

在这里插入图片描述

applymap:

applymap 方法用于在 DataFrame 中的每个元素上应用函数。它将函数应用于 DataFrame 的每个元素,并返回一个新的 DataFrame 对象,其中包含应用函数后的结果。

import pandas as pd

def square(x):
    return x ** 2

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)

# 应用自定义函数到每个元素
result = df.applymap(square)
print(result)

在这里插入图片描述

综合案例:

假设有一个包含学生信息的 DataFrame,其中包括学生姓名、年龄和成绩。现在需要进行以下操作:

  1. 将学生姓名的首字母大写。
  2. 根据不同年龄段给学生打上标签(如 “青少年”、“年轻人”、“成年人”)。
  3. 将成绩大于等于 90 的学生标记为 “优秀”,成绩大于等于 80 且小于 90 的学生标记为 “良好”,其他学生标记为 “一般”。

在这里插入图片描述

import pandas as pd

# 创建示例数据
data = {'姓名': ['nike', 'mike', 'wangwu'],
        '年龄': [20, 25, 30],
        '成绩': [85, 92, 78]}
df = pd.DataFrame(data)

# 1. 将学生姓名的首字母大写
df['姓名'] = df['姓名'].apply(lambda x: x.capitalize())

# 2. 根据年龄段给学生打上标签
age_labels = {20: '青少年', 25: '年轻人', 30: '成年人'}
df['年龄段'] = df['年龄'].map(age_labels)
# 3. 根据成绩给学生打上标签
def grade_label(score):
    if score >= 90:
        return '优秀'
    elif score >= 80:
        return '良好'
    else:
        return '一般'
df['成绩标签'] = df['成绩'].apply(grade_label)

print(df)

在这里插入图片描述

  • apply 方法:通过 apply 方法将 lambda 函数应用于学生姓名的每个值,使其首字母大写。
  • map 方法:利用 map 方法根据年龄字典将年龄映射为对应的年龄段标签。
  • apply 方法:通过 apply 方法将自定义函数 grade_label 应用于学生成绩的每个值,生成成绩标签。

总结:

apply 方法适用于 DataFrame 和 Series 对象,可以将自定义函数应用于行或列,实现元素级别的转换和处理。

map 方法适用于 Series 对象,用于对每个元素进行映射操作,可以使用函数、字典或其他 Series 对象进行映射。

applymap 方法适用于 DataFrame 对象,用于对每个元素进行元素级别的转换和处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扩散模型基础

扩散模型发展至今日,早已成为各大机器学习顶会的香饽饽。本文简记扩散模型入门相关代码,主要参阅李忻玮、苏步升等人所编著的《扩散模型从原理到实战》 文章目录 1. 简单去噪模型1.1 简单噪声可视化1.2 去噪模型1.3 小结 2 扩散模型2.1 采样过程2.2 上科…

线性代数基础知识

计算机视觉一些算法中常会用到线性代数的一些知识,为了便于理解和快速回忆,博主这边对常用的一些知识点做下整理,主要来源于如下这本书籍。 1. 矩阵不仅仅是数字排列而已,不然也不会有那么大精力研究它。其可以表示一种映射 关于…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(1)

前言中曾提到:本章重点介绍PCI桥。 在PCI体系结构中含有两类桥:一类是HOST主桥;另一类是PCI桥。在每一个PCI设备中(包括PCI桥),都含有一个配置空间。这个配置空间由HOST主桥管理,而PCI桥可以转…

CycleGAN 是如何工作的?

一、说明 CycleGAN即循环对抗网络,是图像翻译成图像的模型;是Pix2Pix模型的扩展,区别在于,Pix2Pix模型需要输入图像和目标图像成对给出训练,CycleGAN则不需要,例如:从 SAR 生成 RGB 图像、从 RG…

使用ASP.NET MiniAPI 调试未匹配请求路径

本文将介绍如何在使用ASP.NET MiniAPI时调试未匹配到的请求路径。我们将详细讨论使用MapFallback方法、中间件等工具来解决此类问题。 1. 引言 ASP.NET MiniAPI是一个轻量级的Web API框架,它可以让我们快速地构建和部署RESTful服务。然而,在开发过程中如…

S7-1200 PLC回原方式详细解读(SCL代码)

S7-1200PLC脉冲轴位置控制功能块的介绍,可以查看下面链接文章: https://rxxw-control.blog.csdn.net/article/details/135299302https://rxxw-control.blog.csdn.net/article/details/135299302脉冲轴工艺对象组态设置介绍 https://rxxw-control.blog.csdn.net/article/det…

算法(3)——二分查找

一、什么是二分查找 二分查找也称折半查找,是在一组有序(升序/降序)的数据中查找一个元素,它是一种效率较高的查找方法。 二、二分查找的原理 1、查找的目标数据元素必须是有序的。没有顺序的数据,二分法就失去意义。 2、数据元素通常是数值…

推荐系统中 排序策略 CTR 动态加权平均法

CTR(Click-Through Rate)动态加权平均法是一种用于计算广告点击率的方法,其中每个点击率被赋予一个权重,这个权重可以随着时间、事件或其他因素而动态调整。这种方法旨在更灵活地反映广告点击率的变化,使得最近的数据更…

HTML与CSS

目录 1、HTML简介 2、CSS简介 2.1选择器 2.1.1标签选择器 2.1.2类选择器 2.1.3层级选择器(后代选择器) 2.1.4id选择器 2.1.5组选择器 2.1.6伪类选择器 2.2样式属性 2.2.1布局常用样式属性 2.2.2文本常用样式属性 1、HTML简介 超文本标记语言HTML是一种标记语言&…

【GoLang】Go语言几种标准库介绍(三)

文章目录 前言几种库debug 库 (各种调试文件格式访问及调试功能)相关的包和工具:示例 encoding (常见算法如 JSON、XML、Base64 等)常用的子包和其主要功能:示例 flag(命令行解析)关键概念:示例示例执行 总结专栏集锦写在最后 前言 上一篇&a…

Leetcode 剑指 Offer II 059. 数据流中的第 K 大元素

题目难度: 简单 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 设计一个找到数据流中第 k 大元素的类(class&#xf…

使用keepalived时虚拟IP漂移注意事项

什么是Keepalived服务 keepalived是一个开源的软件项目,用于实现高可用性(HA)的网络服务器负载均衡和故障转移。它允许将多台服务器组合在一起,形成一个虚拟服务器集群,实现负载均衡和故障转移。 keepalived的核心功…

【力扣100】46.全排列

添加链接描述 class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 思路是使用回溯if not nums:return []def dfs(path,depth,visited,res):# 出递归的条件是当当前的深度已经和nums的长度一样了,把path加入数组,然后出递归if …

echarts 二分图布局_力向导图_关系图

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、力向导图(二分图布局…

摩尔线程S80对于软件的支持

摩尔线程对软件的支持 时间:2024年1月1日 显卡型号:MTT S80 主板型号:七彩虹 igame z590 火神 V20 CPU: intel core i5 10400f 内存: 海盗船3600 16*2 存储: 致态1Tb nvme 显卡的驱动是最新的。 游戏 S…

从 MySQL 的事务 到 锁机制 再到 MVCC

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、事务 1.1 含义 1.2 ACID 二、锁机制 2.1 锁分类 2.2 隔离级别 三、MVCC 3.1 介绍 3.2 隔离级别 3.3 原理 四、总结 前…

关于Python里xlwings库对Excel表格的操作(二十五)

这篇小笔记主要记录如何【如何使用xlwings库的“Chart”类创建一个新图表】。 前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 (1)如何安装导入xlwings库; (2…

LeetCode刷题--- 不同路径 III

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述递…

二叉树详解(深度优先遍历、前序,中序,后序、广度优先遍历、二叉树所有节点的个数、叶节点的个数)

目录 一、树概念及结构(了解) 1.1树的概念 1.2树的表示 二、二叉树概念及结构 2.1概念 2.2现实中的二叉树: 2.3数据结构中的二叉树: 2.4特殊的二叉树: 2.5 二叉树的存储结构 2.51 顺序存储: 2.5.2 链式存储&…

Apache Flink连载(二十三):Flink HA - Flink基于Yarn HA

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Yarn HA配置 ​​​​…