pandas学习笔记13

map,apply,applymap
**

apply:应用在DataFrame的行或列中;
applymap:应用在DataFrame的每个元素中;
map:应用在单独一列(Series)的每个元素中。

**

apply()方法
前面也说了apply方法是一般性的“拆分-应用-合并”方法。 apply()将一个函数作用于DataFrame中的每个行或者列 它既可以得到一个经过广播的标量值,也可以得到一个相同大小的结果数组。我们先来看下函数形式:

df.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)

func : 函数应用于每一列或每一行
axis: 0或“索引”:将函数应用于每一列。 1或“列”:将函数应用于每一行。

df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
# 1或“列”:将函数应用于每一行。
df.apply(np.sum, axis=1)#获取每行的总和

可以设置一个def方法,用其对进行运算

def cal_result(df, x, y):df['C'] = (df['A'] + df['B']) * xdf['D'] = (df['A'] + df['B']) * yreturn df
df.apply(cal_result, x=3, y=8, axis=1)

在这里我们先定义了一个 cal_result 函数,它的作用是计算 A,B 列和的 x 倍和 y 倍添加到 C,D 列中。这里有三种方式可以完成参数的赋值,
第一种方式直接通过关键字参数赋值,指定参数的值;
第二种方式是使用 args 关键字参数传入一个包含参数的元组;

df.apply(cal_result, args=(3, 8), axis=1) 

第三种方式传入通过 ** 传入包含参数和值的字典

df.apply(cal_result, **{'x': 3, 'y': 8}, axis=1)

apply的使用是很灵活的,再举一个例子,配合 loc 方法我们能够在最后一行得到一个总和:

df.loc[2] = df.apply(np.sum)
df

applymap()方法
该方法针对DataFrame中的元素进行操作,还是使用这个数据: df.applymap(func)
applymap方法操作的是其中的元素,并且是对整个DataFrame进行了格式化,我们也可以选择行或列中的元素:
df[['A']]
特别注意:

df['A'].applymap(lambda x: '%.2f'%x)  # 异常 

需要注意的是这里必须使用 df[[‘A’]] ,表示这是一个DataFrame,而不是一个Series,如果使用 df[‘A’] 就会报错。同样从行取元素也要将它先转成DataFrame。还需要注意apply方法和applymap的区别:
apply方法操作的是行或列的运算,而不是元素的运算,比如在这里使用格式化操作就会报错;
applymap方法操作的是元素,因此没有诸如axis这样的参数,它只接受函数传入。

map()方法
如果你对applymap方法搞清楚了,那么map方法就很简单,说白了map方法是应用在Series中的,还是举上面的例子

# 注意Series没有applymap方法
df['A'].map(lambda x: '%.2f'%x)

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

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

相关文章

【计算机网络】FTP站点配置搭建教程以及相关问题解决方案(超详细)

文章目录 1、安装Window Server 20082、搭建FTP环境(1)安装FTP服务器(2)配置FTP服务器(3)测试FTP连接 3、遇到的问题以及解决方案(1)Windows无法访问此文件夹(2&#xff…

上传文件到 linux

一、mac 法一:scp 先进入mac的 Node_exporter文件(要上传的文件)目录下 输入scp -P 端口号 文件名 rootIP:/存放路径 scp -P 22 node_exporter-1.8.0.linux-amd64.tar.gz root192.***.2:/root 法二、 rz mac 安装 lrzsz,然后…

dp 动态规划 力扣

64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,1],[4,2,1]] 输…

Python基础学习之logging模块

在Python编程中,日志记录(Logging)是一个非常重要的功能。它不仅可以帮助我们追踪和调试代码中的错误,还可以记录程序运行时的关键信息,以便后续分析和优化。Python标准库中的logging模块为我们提供了强大的日志记录功…

AI日报|gpt2-chatbot神秘聊天机器人引热议,疑似GPT-4.5?《金融时报》与OpenAI达成战略合作...

欢迎大家在 GitHub 上 Star 我们: 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…

踏准芯片定制风口的灿芯股份,护城河足够深吗?

近年来,芯片定制渐成风潮,不仅位于下游、自身有巨大芯片需求的科技巨头如谷歌、OpenAI等纷纷转向定制,而且产业中游主打标准化芯片的主流芯片设计公司如博通、英伟达等,也相继开辟或加码定制业务。 风潮背后,一方面是…

老人摔倒监测识别摄像机

随着社会老龄化程度的不断加深,老年人的健康和安全问题日益凸显。在家中独居的老人,一旦发生意外摔倒等情况,往往难以及时得到帮助,造成了严重的安全隐患。为了解决这一问题,近年来,老人摔倒监测识别摄像机…

AI大模型探索之路-训练篇7:大语言模型Transformer库之HuggingFace介绍

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

鸿蒙组件样式复用简介

鸿蒙组件样式复用简介 使用Style进行复用在Component内部复用在Component外部复用使用Extend复用指定类型组件Extend支持参数传递 使用Style进行复用 在页面开发过程中,会遇到多个组件都在使用相同的样式,这时候就要考虑是不是可以将相同的样式的进行复…

vue 使用 html2canvas 截屏并下载图片至本地(重点兼容ie浏览器)

安装html2canvas&#xff1a; npm install --save html2canvas注意&#xff1a;如果是某些原因不能npm的话就直接把依赖包拷贝到node_modules就可以啦 html&#xff1a; <div class"details-box" v-show"detailsFormShow"><div class"det…

群狼调研(长沙市场调研)|食品安全群众满意度调查方案

本文由群狼调研&#xff08;长沙食品安全满意度调查&#xff09;出品&#xff0c;欢迎转载&#xff0c;请注明出处。设计一个食品安全群众满意度调查方案需要考虑调查目的、样本选择、问题设计、数据收集和分析等多个方面。以下是一个可能的食品安全群众满意度调查方案的概述&a…

AP510X 单路低压差线性恒流芯片 LED手电筒景观亮化台灯车灯照明

AP510X 是一系列电路简洁的单路线性LED恒流芯片&#xff0c;适用于3-60V电压范围的LED恒流调光领域。AP510X采用我司算法&#xff0c;可以实现高精度的恒流效果&#xff0c;输出电流恒流精度≤3&#xff05;&#xff0c;电源供电工作范围为3-40V&#xff0c;可以轻松满足锂电池…

【深度优先搜索 图论 树】2872. 可以被 K 整除连通块的最大数目

本文涉及知识点 深度优先搜索 图论 树 图论知识汇总 LeetCode 2872. 可以被 K 整除连通块的最大数目 给你一棵 n 个节点的无向树&#xff0c;节点编号为 0 到 n - 1 。给你整数 n 和一个长度为 n - 1 的二维整数数组 edges &#xff0c;其中 edges[i] [ai, bi] 表示树中节点…

VMware 虚拟机打开一段时间后卡死,VNX进程CPU占比高

一、问题描述 打开虚拟机后可以正常运行 运行几分钟后突然卡死 然后通过任务管理器可以观察到VMware Workstation VMX应用进程的CPU占比高&#xff0c;CPU也出现异常 关闭虚拟机重新开启&#xff0c;还是一样卡死 二、系统环境 系统: Windows10 VMware: Workstation 17 Pro …

奇门辅助软件v2024.5

废话不说&#xff0c;先上链接 链接&#xff1a;https://pan.baidu.com/s/1_i11lMx4P_vrTs-6lpWoHA?pwd8v1m 提取码&#xff1a;8v1m 功能介绍 【宫内信息】是点击宫内某属性时显示的宫内基本信息。 【古籍宝鉴】是《御定奇门宝鉴》里的对应时局内容&#xff0c;但差补法置…

[Flutter]单元测试和组件测试

1.单元测试 在Flutter开发中&#xff0c;进行单元测试是确保你的代码质量以及未来更改不会破坏现有功能的关键步骤。当你开发私有包时&#xff0c;单元测试尤其重要&#xff0c;因为这有助于保持包的稳定性和可维护性。以下是如何在Flutter中进行单元测试的详细指南&#xff1…

GPT:利用LLM Studio在本地运行语言模型

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 随着人工智能和自然语言处理技术的发展&#xff0c;语言模型技术正逐渐成为博客和内容创作领域的重要工具。LLM Studio是一种允许用户在本地环境中运行语言模型的工具&#xff0c;它…

备考2024年小学生古诗文大会:吃透10道历年真题和知识点(持续)

对上海小学生的小升初和各种评优争章来说&#xff0c;语文、数学、英语的含金量较高的证书还是很有价值和帮助的。对于语文类的竞赛&#xff0c;小学生古诗文大会和汉字小达人通常是必不可少的&#xff0c;因为这两个针对性强&#xff0c;而且具有很强的上海本地特色。 今天我…

C语言 | Leetcode C语言题解之第69题x的平方根

题目&#xff1a; 题解&#xff1a; int mySqrt(int x) {long int i 0;for(i0;;i){long int a i*i;long int b (i1)*(i1);if(a < x&&b > x){break;}}return i; }

Redis 整合

1、pom 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>2、yml 配置 spring:redis:host: 192.168.56.10port: 63793、直接注入 StringRedisT…