Pandas数据分析基础—pandas自带函数map()/apply()/applymap()

文章目录

  • 前言
  • 一、Series数据处理
    • 1、map()方法
    • 2、apply()方法
    • 3、applymap()方法
    • 总结
  • 二、DataFrame数据处理
    • 1、map()方法
    • 2、apply()方法
    • 3、applymap()方法
    • 总结
  • 三、map、apply、applymap三个函数区别


前言

在进行数据处理时,经常会对一个DataFrame展开逐行、逐列、逐元素的操作,对应这些操作,常常使用Pandas中的map、apply和applymap三个函数进行处理。本文主要讲这三个函数在series、dataframe数据结构下应用情况及三个函数的区别。


模拟的样本数据

boolean=[True,False]
channel=["T","N"]
data=pd.DataFrame({"A":np.random.randint(150,190,10),"B":np.random.randint(40,90,10),"C":[boolean[x] for x in np.random.randint(0,2,10)],"D":[channel[x] for x in np.random.randint(0,2,10)]
}
)
data

在这里插入图片描述

一、Series数据处理

1、map()方法

  • 使用字典进行映射

举例:
要求:将D列中”N“换为0,”T“为1。

data['D']=data['D'].map({'N':0,'T':1})
data

在这里插入图片描述

  • 使用函数

举例:
要求:将D列中”N“换为0,”T“为1。

def func(values):if values=='N':return 0else:return 1data['D']=data['D'].map(func)
data

在这里插入图片描述

不管是利用字典还是函数进行映射,map方法都是把对应的数据逐个当作参数传入到字典或函数中,得到映射后的值。

2、apply()方法

  • 使用函数做映射

举例:
要求:将D列中”N“换为0,”T“为1。

def func(values):if values=='N':return 0else:return 1data['D']=data['D'].apply(func)
data

在这里插入图片描述

  • apply可以输入额外的参数
    可以给apply调用函数添加多个参数,在apply里加上args=,将其他参数组成一个元组代入函数中。注意:只有一个额外参数时需要写成这种形式:(‘额外参数1’,),加一个’,',代表是一个元组。

举例:
要求:将A列中所有数值减去100。

def func(values,x):return values+xdata['A']=data['A'].apply(func,args=(-100,))
data

在这里插入图片描述

  • 不可以用字典来做映射

举例:
要求:将D列中”N“换为0,”T“为1。

data['D']=data['D'].apply({'N':0,'T':1})
data

在这里插入图片描述

3、applymap()方法

  • series没有applymap函数。

总结

  • Series的map可以直接输入字典做关系映射,apply不行。
  • Series的apply可以输入函数之外的额外参数,map不行。
  • Series的apply和map都可以输入函数做数据处理。
  • Series没有applymap函数。
  • Series的apply是不能直接输入字典做关系映射,不是不能输入字典。

二、DataFrame数据处理

1、map()方法

  • DataFrame中没有map()方法

2、apply()方法

  • 对比Series的apply,DataFrame的apply多了一个核心参数axis:
    当axis=1时,对每行执行指定函数。
    当axis=0时,对每列执行指定函数。

举例1
要求:对比A、B两列,求每行最大值

import numpy as np 
data[['A','B']].apply(np.max,axis=1)

在这里插入图片描述
举例2
要求:求A、B两列的最大值

import numpy as np 
data[['A','B']].apply(np.max,axis=0)

在这里插入图片描述

3、applymap()方法

  • applymap会对DataFrame中每个单元格执行指定函数的操作

举例:
要求:将dataframe中所有的值保留两位小数显示,使用applymap可以很快达到你想要的目的

import pandas as pd
data = pd.DataFrame({"A":np.random.randn(5),"B":np.random.randn(5),"C":np.random.randn(5),"D":np.random.randn(5),"E":np.random.randn(5),}
)
data data .applymap(lambda x:"%.2f" % x)

在这里插入图片描述
在这里插入图片描述

总结

  • DataFrame没有map函数。
  • DataFrame的apply是对行(可以单行也可以多行)或列(可以单列也可以多列)执行指定函数的操作,有axis参数,当axis=1,对每行执行指定函数,当axIs=0时,对每列执行指定函数。
  • DataFrame中applymap会对每个单元格执行指定函数的操作。

三、map、apply、applymap三个函数区别

  • map:应用在单独一个Series的每个元素中,只针对单列。

  • apply:应用在DataFrame的行或列中,也可以应用到单独一个Series的每个元素中,针对多列,也可以单列。

  • applymap:应用在DataFrame的每个元素中。针对DataFrame全部元素。apply想要直接对每个元素进行操作,得单独取出serires才可以实现,不能直接在整个DataFrame上执行。


参考文章:

https://zhuanlan.zhihu.com/p/100064394
https://zhuanlan.zhihu.com/p/133722455
https://zhuanlan.zhihu.com/p/584036056

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

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

相关文章

day7_网络编程

day7_网络编程 将文件内容拷贝到数据库 将文件内容拷贝到数据库 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include &l…

业务数据模拟/采集

业务数据模拟/采集 2.2 业务数据模拟 2.2.1 连接MySQL 通过MySQL可视化客户端连接数据库。2.2.2 建表语句 1&#xff09;通过SQLyog创建数据库2&#xff09;设置数据库名称为gmall&#xff0c;编码为utf-8&#xff0c;排序规则为utf8_general_ci3&#xff09;导入数据库结构脚本…

【AI】机器学习——绪论

文章目录 1.1 机器学习概念1.1.1 定义统计机器学习与数据挖掘区别机器学习前提 1.1.2 术语1.1.3 特点以数据为研究对象目标方法——基于数据构建模型SML三要素SML步骤 1.2 分类1.2.1 参数化/非参数化方法1.2.2 按算法分类1.2.3 按模型分类概率模型非概率模型逻辑斯蒂回归 1.2.4…

stable diffusion实践操作-提示词-人物服饰

系列文章目录 stable diffusion实践操作-提示词 文章目录 系列文章目录前言一、提示词汇总1.1 人物服饰11.2 人物服饰2 前言 本文主要收纳总结了提示词-人物服饰。 一、提示词汇总 1.1 人物服饰1 耳饰帽子内裤内衣上身饰品手部[月牙耳环][头顶光环][丁字裤][胸罩][披风][太…

redis 数据结构(二)

整数集合 整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素&#xff0c;并且元素数量不时&#xff0c;就会使用整数集这个数据结构作为底层实现。 整数集合结构设计 整数集合本质上是一块连续内存空间&#xff0c;它的结构定义如下&#xff1a; typed…

避雷,软件测试常见的误区之一

随着软件规模的不断扩大&#xff0c;软件设计的复杂程度不断提高&#xff0c;软件开发中出现错误或缺陷的机会越来越多。同时&#xff0c;市场对软件质量重要性的认识逐渐增强。所以&#xff0c;软件测试在软件项目实施过程中的重要性日益突出。但是&#xff0c;现实情况是&…

ThreadPoolExecutor创建线程池

ThreadPoolExecutor创建线程池 线程池的所有创建方式选择哪种创建方式&#xff1f;ThreadPoolExecutor构造方法参数解释线程池的执行流程 线程池的所有创建方式 线程池的创建方式总共包含以下 7 种&#xff08;其中 6 种是通过 Executors 创建的&#xff0c;1 种是通过ThreadP…

2023_Spark_实验五:Scala面向对象部分演示(一)(IDEA开发)

1、面向对象的基本概念 把数据及对数据的操作方法放在一起&#xff0c;作为一个相互依存的整体——对象&#xff0c;面向 对象的三大特征&#xff1a; 封装 继承 多态 2、类的定义 简单类和无参方法 class Counter{private var value 0;def increment() { value1};def…

hiveserver2经常挂断的原因

hiveserver2经常挂断的原因 HiveServer2 经常挂断可能有多种原因&#xff0c;以下是一些可能导致挂断的常见原因&#xff1a; 资源不足&#xff1a;HiveServer2 需要足够的内存和 CPU 资源来处理查询请求。如果资源不足&#xff0c;可能会导致 HiveServer2 挂断。请确保在配置…

喜讯 | 数智经营新典范,体验家XMPlus荣获「年度数智经营服务商」

7月27日&#xff0c;“助力运营知识与创新传播”的内容服务平台——运营研究社举行了「2023数字化运营生态大会」&#xff0c;会上正式揭晓了「2023数字化运营生态大奖」的四大榜单&#xff0c;体验家XMPlus荣获「年度数智经营服务商」&#xff01;现场有800运营伙伴齐聚&#…

Mysql存储引擎

目录 一、前言 二、存储引擎 1、InnoDB存储引擎 1.1、简介 1.2、优势 1.3、使用方法 1.4、性能 2、MyISAM存储引擎 2.1、优势 2.2、使用方法 2.3、性能 3、MEMORY存储引擎 4、MyISAM 三、比较 四、总结 一、前言 MySQL是开放源代码的关系型数据库管理系统&…

对于枚举类型的输出

对于枚举类型的输出 对于枚举类型的输出&#xff0c;您可以使用以下方法&#xff1a;1. 将枚举值转换为整数进行输出&#xff1a;cppODU_TYPE type ODU_TYPE_331;int value static_cast<int>(type);std::cout << "ODU_TYPE: " << value <<…

python 笔记(3)——request、爬虫、socket、多线程

目录 1、使用requests发送http请求 1-1&#xff09;发送get请求 1-2&#xff09;发送 post 请求 1-3&#xff09;发送 get 请求下载网络图片 1-4&#xff09;使用 post 上传文件 1-5&#xff09;自动维护 session 的方式 2、使用 os.popen 执行cmd命令 3、基于 beautif…

【微服务部署】五、Jenkins+Docker一键打包部署NodeJS(Vue)项目的Docker镜像步骤详解

NodeJS&#xff08;Vue&#xff09;项目也可以通过打包成Docker镜像的方式进行部署&#xff0c;原理是先将项目打包成静态页面&#xff0c;然后再将静态页面直接copy到Nginx镜像中运行。 一、服务器环境配置 前面说明了服务器Nginx的安装和配置&#xff0c;这里稍微有些不同&a…

mysql Index

创建索引 方法1 create table 表( col1 int, col2 int, … index | key index_name (列名) 方法2 alter table 表名 ADD index alter table student_table add index index_name(stu_id); 方法3 create index index_name on 表名(列) 删除索引 方式1 alter table xx drop prima…

革命性的电子元件:RAD继电器 | 百能云芯

在现代电子和通信系统中&#xff0c;RAD继电器是一种关键的电子元件&#xff0c;它在各种应用中发挥着重要作用。RAD继电器&#xff08;Reed-relay Actuated Device&#xff09;是一种基于磁性原理的电子开关&#xff0c;其特点是极其高速、可靠、低功耗和长寿命。下面云芯将为…

【Axure视频教程】表格编号函数

今天教大家在Axure里如何使用表格编号函数&#xff0c;包括表格编号函数的基本原理、在需要翻页的中继器表格里如何正确使用该函数、函数作为条件的应用&#xff0c;包括让指定第几行的元件默认变色效果以及更新对应第几行内容的效果。该教程主要讲解表格编号函数&#xff0c;不…

案例分享:西河水库安全监测信息化系统实施方案

一、项目概述1.1项目背景西河水库信息化工作已开展多年&#xff0c;但是由于西河水库监测设备都已经老化或者损坏&#xff0c;现有设备已渐渐不能满足新时期西河水库信息化和现代化发展需求。因此&#xff0c;灌区管理局拟在运用现代信息和通信技术手段感测、分析、整合水库运行…

大数据(七):Pandas的基础应用详解(四)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…

el-date-picker自定义只能选中当前月份和半年内月份等

需求&#xff1a;el-date-picker只能选中当前月期和当前月期往前半年&#xff0c;其他时间就禁用了不让选择了&#xff0c;因为没数据哈哈。当然也可以选择往前一年等。 一、效果 二、写个日期选择器 :picker-options&#xff1a;日期选项 value-format&#xff1a;选择后的格…