029—pandas 遍历行非向量化修改数据

news2024/11/19 18:23:41

前言

在 pandas 中,向量化计算是指利用 pandas 对象的内置方法和函数,将操作应用到整个数据结构的每个元素,从而在单个操作中完成大量的计算。
但在一些需求中,我们无法使用向量化计算,就需要迭代操作,本例就是这样的一种情况。

需求:

  1. 第一行的值为所在行的 a + b
  2. 第二行及以后的值为 上一行的 c + a

思路:

  • 本例不是一个向量化的计算,因为第一行的计算逻辑与其他行的计算逻辑不同。针对,这样的情况,我们可以用迭代的方法进行灵活的操作。
  • 先根据第一行的计算逻辑增加 c 列,然后迭代并排除第一行,对其他行按计算逻辑进行修改。

二、使用步骤

读入数据

代码如下(示例):

import pandas as pd

df = pd.DataFrame({'a': [5, 6, 7], 'b': [3, 5, 8]})
df

在这里插入图片描述

# 按第一行的计算逻辑增加 c 列:
df['c'] = df.a+df.b
df

在这里插入图片描述

# 迭代计算修改其他行:
# 遍历df的每一行,返回一个命名元组,命名元组的字段包括Index和DataFrame中的各列
for i in df.itertuples():
    if i.Index != 0:
        df.loc[i.Index, 'c'] = i.a + df.loc[i.Index-1, 'c'] # 当前行的'a'列值与上一行的'c'列值相加,并将结果赋值给当前行的'c'列
# 以上代码,df.itertuples() 产生一个可迭代 map 对象,每行是一个 namedtuple 类型数据。即:

for i in df.itertuples():
    print(i)

在这里插入图片描述

# 接着判断如果索引不是第一行(值为 0)就用 loc 获取定位并进行修改,最后得到的数据为:

df

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

【研发日记】Matlab/Simulink技能解锁(二)——在Matlab Function编辑窗口Debug

文章目录 前言 行断点 条件断点 按行步进 Watch Value 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 行断点 当Matlab Function出现异常时,如果能确定大致的代码段,就可以在相应的行上设置一…

AI - 决策树模型

🤔决策树算法 决策树的思想来源可以追溯到古希腊时期,当时的哲学家们就已经开始使用类似于决策树的图形来表示逻辑推理过程。然而,决策树作为一种科学的决策分析工具,其发展主要发生在20世纪。 在20世纪50年代,美国兰…

如何在CasaOS系统玩客云中安装内网穿透工具实现远程访问内网主机下载资源

文章目录 1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 2月底,玩客云APP正式停止运营,不再提供上传、云添加功能。3月初,有用户进行了测试,局域网内的各种服务还能继续使用,但…

【SpringCloud微服务实战07】Sentinel 服务保护

Sentinel 是阿里巴巴开源的一款微服务流量控制组件。主要作用: 流量控制:避免因瞬间高并发流量而导致服务故障流。超时处理、线程隔离、降级熔断:避免因服务故障引起的雪崩问题。一、Sentinel 安装 1、安装Sentinel控制台,下载jar包并启动:Releases alibaba/Sentinel G…

动态库和静态库的新理解

旧理解(当初理解较浅,今再看到有新发现) 链接: 静态链接库和动态链接库区别_动态链接库和静态链接库的区别-CSDN博客 由于本人不是做架构方面,给大佬打螺丝。长时间的惯性思维就是要使用其他项目的类或者函数,先导出成dll。然后…

分布式调用与高并发处理(二)| Dubbo

文章目录 Dubbo概念_什么是分布式系统单机架构集群架构分布式架构单机、集群和分布式的区别 Dubbo概念_什么是RPCRPC两个作用:常见 RPC 技术和框架: Dubbo概念_简介Dubbo能做什么Dubbo支持的协议 Dubbo概念_核心组件注册中心Registry服务提供者Provider服…

[ C++ ] STL---string类的使用指南

目录 前言: string类简介 string类的常用接口 string类对象的构造函数 string类对象的赋值运算符重载 string类对象的容量操作 string类对象的访问与遍历 [ ] 下标遍历 迭代器遍历 普通迭代器iterator ​编辑 const迭代器const_iterator 反向迭代器rever…

Linux课程_____用户的管理

一、规则 用户至少属于一个组,在创建时如果不指定组,将会创建同名的组 用户只能有一个基本组(主组),但可以隶属于多个附加组 如果一个组作为某用户的基本组,此组将不能被删除 UID: 用户标识 GID: 组的标识 root管理员的uid及gid 都为0 二、用户的配置文件 1./etc/passwd …

Arduino IDE的下载和安装

一、Arduino的介绍 Arduino是一款开源电子原型平台,主要包含两部分:硬件(各种型号的Arduino板)和软件(Arduino IDE)。这个平台由意大利的Massimo Banzi、David Cuartielles等人共同开发设计,并于…

mysql5.7离线安装 windows

windows上离线安装mysql5.7 下载安装包 去官网下载对应版本的mysql官网 点击archives,接着选择自己要下载的版本,选择windows系统,并根据自己电脑的位数选择相应的版本【找到“此电脑”,鼠标右击,出来下拉框,选择“属性…

CTF-希尔加解密

对于希尔加解密很多writeup都说用在线工具,所以研究了一下,写了一个方便的加解密python代码,根据给定的字母表及私钥字符串,尝试不同纬度不同重叠的加密矩阵输出加解密结果。运行效果如下: 代码文件Hill希尔加解密_final.py import numpy as np import string # 导入自定…

PHP异世界云商系统开源源码

系统更新与修复列表 1. 基于彩虹的二次开发 - 对彩虹系统进行了二次开发,增强了系统的功能和性能。2. 新增自定义输入框提示内容(支持批量修改) - 用户可以自定义输入框的提示内容,并支持批量修改,提升用户体验。3. 新…

【python】自动化工具Selenium与playwright去除webdriver检测

对这个世界如果你有太多的抱怨 跌倒了就不敢继续往前走 为什么人要这么的脆弱 堕落 请你打开电视看看 多少人为生命在努力勇敢的走下去 我们是不是该知足 珍惜一切 就算没有拥有 🎵 周杰伦《稻香》 # -*- coding:utf-8 -*- import timefrom s…

Docker基本配置及使用

Docker基本配置及使用 使用步骤 1.卸载旧版 代码如下:首先如果系统中已经存在旧的Docker,则先卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engin…

C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解)

C进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解) 结束了继承的介绍:C进阶:详细讲解继承 那紧接着的肯定就是多态啦 文章目录 1.多态的概念2.多态的定义和实现2.1多态的构成条件2.2虚函数2.2.1虚函数的概念2…

P3374 【模板】树状数组 动态求连续区间和 刷题笔记

我们创建如下的树状数组来辅助操作 该数组每个s[i]处于第几层取决于其二进制 最后低位 的1处于从右往左数第几列 显然所有奇数的最右边一位都是1 即其最低位的1 处于右边第一列 所以所有的奇数处于第一层 而2,6,10,14的最低位1处于右边第二…

NVENC 视频编码器 API 编程指南 ( 中文转译 )

基于 NVIDIA Kepler™ 和更高版本 GPU 架构的 NVIDIA GPU 包含基于硬件的 H.264/HEVC/AV1 视频编码器(以下简称 NVENC)。NVENC 硬件采用 YUV/RGB 作为输入,并生成符合H.264/HEVC/AV1 标准的视频比特流。可以使用 NVIDIA 视频编解码器 SDK 中提…

低压保护测控产品解决方案【Acrel-2000M马达监控系统】

背景及需求 低压电机回路 低压进出线回路 越级跳闸 断路器的拒跳对系统安全运行威胁很大,一旦某一单元发生故障时,断路器拒动,将会造成上一级断路器跳闸,称为越级跳闸。断路器越级跳闸的危害这将扩大事故停电范围,甚…

数位排序——数组及lambda表达式应用

题目链接:1.数位排序 - 蓝桥云课 (lanqiao.cn) package lanqiao;import java.util.Arrays; import java.util.Scanner;/*** 2023/11/1* 蓝桥2122* 数位和排序,数位和相等的按大小排序*/ public class lanqiao2122_数位排序 {public static void main(Str…

从零开始利用MATLAB进行FPGA设计(四)生成优化HDL代码

文章灵感来源于MATLAB官方免费教程:HDL Coder Self-Guided Tutorial 考虑到MATLAB官网的英文看着慢,再加上视频讲解老印浓浓的咖喱味,我决定记录利用MATLAB&Simulink&SystemGenerator进行FPGA数字信号处理的学习过程。 往期回顾&am…