当前位置: 首页 > news >正文

一文熟练使用python修改Excel中的数据

使用python修改Excel中的内容

1.初级修改

1.1 openpyxl库的功能:

openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,例如Xlwings。openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只支持读或者写Excel一种功能。

1.2 excel文档的基本定义
  • 工作薄(workbook):一个EXCEL文件就称为一个工作薄,一个工作薄中可以包含若干张工作表
  • 工作表(sheet):工作薄中的每一张表格称为工作表,每张工作表都有一个标签,默认为sheet1\sheet2\sheet3来命名,(一个工作 薄默认为由3个工作表组成)
  • 活动表(active sheet):指当前正在操作的工作表
  • (row): 工作表中的每一行行首数字(1、2、3、)称为行标题;一张工作表最多有65536行
  • (column): 列标题:工作表中每一列列首的字母(A、B、C)称为列标题;一张工作表最多有256列
  • 单元格(cell): 工作表的每一个格称为单元格
1.3 基本信息表的数据修改

要使用Python批量修改Excel的数据,可以使用Python的第三方库openpyxl

首先,需要安装openpyxl库。可以使用以下命令安装:

pip install openpyxl

然后,可以使用以下代码来实现批量修改Excel的数据:

from openpyxl import load_workbook# 打开Excel文件
workbook = load_workbook('example.xlsx')# 选择要修改的工作表
worksheet = workbook['Sheet1']# 遍历要修改的数据
for row in worksheet.iter_rows(min_row=2, min_col=1, max_col=2, values_only=True):# 修改数据new_value1 = row[0] + 1new_value2 = row[1] * 2# 将修改后的数据写回Excelworksheet.cell(row=row[0].row, column=3, value=new_value1)worksheet.cell(row=row[0].row, column=4, value=new_value2)# 保存修改后的Excel文件
workbook.save('example_modified.xlsx')

以上代码假设要修改的Excel文件名为example.xlsx,要修改的工作表名为Sheet1。代码中的min_rowmin_colmax_col参数分别指定了要修改的数据的起始行、起始列和结束列。可以根据实际情况进行修改。

代码中使用iter_rows方法遍历要修改的数据,并使用values_only参数将数据以元组的形式返回。然后,可以根据需要修改数据,并使用cell方法将修改后的数据写回Excel。最后,使用save方法保存修改后的Excel文件。

执行以上代码后,修改后的Excel文件将保存为example_modified.xlsx

1.4 异常解决

AttributeError: ‘int’ object has no attribute ‘row’

这是一个AttributeError异常,表示在一个整数对象上尝试访问名为’row’的属性时出错。整数对象是没有row属性的。

可能的原因是代码中错误地将一个整数对象作为一个具有row属性的对象来使用。你需要检查代码,找到错误的地方并修复它。确保你正在使用正确的对象类型,并且在访问属性之前,该对象已经被正确地初始化或赋值。

2. 进阶修改

2.1 代码如下:
import pandas as pd# 读取Excel文件
df = pd.read_excel('input.xlsx')# 遍历每一行数据
for index, row in df.iterrows():# 判断特定条件if row['列名'] == '特定条件':# 修改数据df.at[index, '需要修改的列名'] = '修改后的值'# 保存修改后的Excel文件
df.to_excel('output.xlsx', index=False)

其中,'input.xlsx’是输入的Excel文件名,'列名’是要判断的列名,'特定条件’是符合要求的条件,'需要修改的列名’是要修改的列名,'修改后的值’是修改后的值。代码中的’output.xlsx’是输出的Excel文件名,可以根据实际情况进行修改。

2.2 简单示例

需求:使用python批量修改Excel中的数据,如果查询到该行某列数据为X开头的字符串,则将X替换为BJ1,修改并保存后遍历下一行

from openpyxl import load_workbook# 打开Excel文件
workbook = load_workbook('data.xlsx')
# 选择第一个工作表
sheet = workbook.active# 遍历每一行
for row in sheet.iter_rows(min_row=2):# 获取第一列的值value = row[0].value# 判断是否以X开头if value.startswith('X'):# 替换为BJ1row[0].value = 'BJ1'# 保存修改后的Excel文件
workbook.save('modified_data.xlsx')

上述代码假设Excel文件名为data.xlsx,且数据从第二行开始,第一列是需要进行替换的数据。修改后的文件将保存为modified_data.xlsx

2.3 具体示例

需求:使用python批量修改Excel中的数据,如果查询到该行某列数据为X开头的字符串,则将X替换为BJ1;如果为0则替换为“BJ0”;如果为9则替换为BJ9,修改并保存后继续遍历下一行。

2.4 Excel源文件如下:

在这里插入图片描述

2.4 代码如下:
import openpyxl# 打开Excel文件
workbook = openpyxl.load_workbook('变量信息.xlsx')# 选择要操作的工作表
worksheet = workbook.active# 遍历每一行
for row in worksheet.iter_rows():# 获取该行的第一个单元格的值cell_value = row[1].value# 如果该行的字符串以X开头,则将X替换为BJ1并拼接后续字符串,同时保存数据if cell_value and str(cell_value).startswith('X' or '1'):new_value = 'BJ1' + str(cell_value)[1:]row[1].value = new_valueworkbook.save('001.xlsx')print(new_value)if cell_value and str(cell_value).startswith('0'):new_value = 'BJ0' + str(cell_value)[1:]row[1].value = new_valueworkbook.save('001.xlsx')if cell_value and str(cell_value).startswith('9'):new_value = 'BJ9' + str(cell_value)[1:]row[1].value = new_valueworkbook.save('001.xlsx')# 否则遍历下一行else:continue
2.5 运行结果如下:

在这里插入图片描述

相关文章:

一文熟练使用python修改Excel中的数据

使用python修改Excel中的内容 1.初级修改 1.1 openpyxl库的功能: openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,例如Xlwings。openpyxl是一个比较综合的工具,能…...

java Spring Boot在配置文件中关闭热部署

之前更大家一起搭建了一个热部署的开发环境 但是 大家要清楚一个情况 我们线上程序运行突然内部发生变化这是不可能的。 所以 他就只会对我们开发环境有效 是否开启 我们可以通过 application配置文件来完成 我这里是yml格式的 参考代码如下 spring:devtools:restart:enabled…...

【物联网】Arduino+ESP8266物联网开发(一):开发环境搭建 安装Arduino和驱动

ESP8266物联网开发 1.开发环境安装 开发软件下载地址: 链接: https://pan.baidu.com/s/1BaOY7kWTvh4Obobj64OHyA?pwd3qv8 提取码: 3qv8 1.1 安装驱动 将ESP8266连接到电脑上,安装ESP8266驱动CP210x 安装成功后,打开设备管理器&#xff0c…...

自定义UI对象转流程节点

自定义UI对象转流程节点 实体自定义对象转bpmn activitiy学习 (动态加签,动态流程图,指定节点跳转,指定多人节点跳转) 前端页面仿的这个 提供一个思路 实体 ActivitiValueVo import io.swagger.annotations.ApiModel; import io.swagger.a…...

P1-P5_动手学深度学习-pytorch(李沐版,粗浅的笔记)

目录 预告  1.学习深度学习的关键是动手  2.什么是《动手学深度学习》  3.曾经推出的版本(含github链接) 一、课程安排  1.目标  2.内容  3.上课形式  4.你将学到什么  5.资源 二、深度学习的介绍  1.AI地图  2.深度学习在一些应用上…...

Android Studio修改模拟器AVD Manger目录

Android Studio修改虚拟机AVD Manger目录 1、在AS的设备管理器Device Manager中删除原来创建的所有虚拟机(Android Virtual Device); 2、新建一个自定义的AVD目录,例如:D:\Android\AndroidAVD 3、在高级系统设置中增加…...

STM32--MQ2烟雾传感器

本文主要介绍STM32F103C8T6和烟雾传感器模块的控制算法 简介 烟雾模块选用MQ-2气体传感器,根据传感器的电导率随空气中可燃气体浓度的增加而增大的特性检测空气中可燃气体,然后将电导率的变化转换成对应的电信号 MQ系列烟雾传感分类如下: 该…...

GitHub要求开启2FA,否则不让用了。

背景 其实大概在一个多月前,在 GitHub 网页端以及邮箱里都被提示:要求开启 2FA ,即双因子认证;但是当时由于拖延症和侥幸心理作祟,直接忽略了相关信息,毕竟“又不是不能用”。。 只到今天发现 GitHub 直接…...

Python 编程基础 | 第三章-数据类型 | 3.6、元组

一、元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。 1、创建元组 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可,例如: tup1 (physics, ch…...

2023/10/7 -- ARM

【程序状态寄存器读写指令】 1.指令码以及格式 mrs:读取CPSR寄存器的值 mrs 目标寄存器 CPSR:读取CPSR的数值保存到目标寄存器中msr:修改CPSR寄存器的数值msr CPSR,第一操作数:将第一操作数的数值保存到CPSR寄存器中//修改CPSR寄存器,也就表示程序的状…...

yolov5加关键点回归

文章目录 一、数据1)数据准备2)标注文件说明 二、基于yolov5-face 修改自己的yolov5加关键点回归1、dataloader,py2、augmentations.py3、loss.py4、yolo.py 一、数据 1)数据准备 1、手动创建文件夹: yolov5-face-master/data/widerface/tr…...

untitle

实用的科研图形美化处理教程分享 ​ 显微照片排版标记 除了统计图表之外,显微照片也是文章中必不可少的实验结果呈现方式。除了常规实验的各种组织切片照片,在空间转录组文章中显微照片更是常见。显微照片的呈现方式也是有讲究的,比如对照片…...

《论文阅读》监督对抗性对比学习在对话中的情绪识别 ACL2023

《论文阅读》监督对抗性对比学习在对话中的情绪识别 前言摘要相关知识最坏样本干扰监督对比学习生成式对抗网络纳什均衡琴森香农散度范式球模型架构监督对抗性对比学习模型结构图实验结果问题前言 你是否也对于理解论文存在困惑? 你是否也像我之前搜索论文解读,得到只是中文…...

2023-10-07 LeetCode每日一题(股票价格跨度)

2023-10-07每日一题 一、题目编号 901. 股票价格跨度二、题目链接 点击跳转到题目位置 三、题目描述 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数&#xff08…...

聊聊分布式架构04——RPC通信原理

目录 RPC通信的基本原理 RPC结构 手撸简陋版RPC 知识点梳理 1.Socket套接字通信机制 2.通信过程的序列化与反序列化 3.动态代理 4.反射 思维流程梳理 码起来 服务端时序图 服务端—Api与Provider模块 客户端时序图 RPC通信的基本原理 RPC(Remote Proc…...

维吉尼亚密码

维吉尼亚密码属于多表代换密码 其中A<–>0&#xff0c;B<–>1&#xff0c;…&#xff0c;Z<–>25&#xff0c;则每个密钥K相当于一个长度为m的字母串&#xff0c;称为密钥字。维吉尼亚密码一次加密m个明文字母。 示例&#xff1a;设m6&#xff0c;密钥字为…...

ubuntu20.04挂载拓展盘保姆级流程

背景&#xff1a;跑模型玩时&#xff0c;发现机子硬盘太小了&#xff0c;搞个1t固态作为挂载盘。以下为操作全流程记录 1、开始root权限操作 sudo su若进不去&#xff0c;考虑是否给root设置过密码&#xff0c;新系统第一次进入需要设置密码。 进入成功&#xff1a; rooty:…...

顶顶通电话机器人接口对接开源ASR(语音识别)

前景介绍 目前大部分用户使用的都是在线ASR按照分钟或者按次付费&#xff0c;之前开源ASR效果太差不具备商用的条件&#xff0c;随着 阿里达摩院发布了大量开源数据集或者海量工业数据训练的模型&#xff0c;识别效果已经和商用ASR差距非常小&#xff0c;完全具备了很多场景代…...

windows消息机制

windows开发比较简单&#xff0c;首先要理解的就是消息机制。 Windows消息机制是指Windows操作系统中的消息传递机制。在Windows中&#xff0c;应用程序通过消息进行通信和交互。消息是一种轻量级的通信方式&#xff0c;用于在不同的窗口、线程或进程之间传递信息。 在Windows…...

整数划分——DP

用 j j j 个数表示 i i i 的方案数&#xff0c;考虑dp 转移考虑最小值是否为1 无限制 若为1&#xff0c;则转移到 f ( i 1 , j 1 ) f(i1, j1) f(i1,j1)不为1&#xff0c;则全部1&#xff0c;转移到 f ( i j , j ) f(ij, j) f(ij,j) 数之间不能重复 那么相当于每次整…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...