【Python】多个dataframe存入excel的不同的sheet表里,而不会被覆盖的方法

我发现,我原来用的多个工作簿存入的方法,发现不太可行,如果我用原来的方法,然后for循环,新的dataframe会把原来的覆盖掉,然后只剩下一个工作薄。原先的代码:

with pd.ExcelWriter(file_name ) as writer:
    Table.to_excel(writer, sheet_name=sheet_name, index=False) 

当使用for循环的时候,原来的sheet 会被新的表给覆盖掉。先用一堆的dfs来测试一下:

import pandas as pd

df1 = pd.DataFrame({'Column1': range(5), 'Column2': range(5, 10)})
df2 = pd.DataFrame({'Column1': range(10, 15), 'Column2': range(10, 15)})
df3 = pd.DataFrame({'Column1': range(20, 25), 'Column2': range(20, 25)})

dataframes = []
dataframes.append(df1)
dataframes.append(df2)
dataframes.append(df3)

这里运行完了以后,我们现在有多个dataframe的表,现在需要一个个将他们存入到excel的不同的工作簿中。如果是给上面的方法加一个for循环,【错误示范】!!!!:

file_name="./tese.xlsx"
for i in range(len(dataframes)):
    Table=dataframes[i]
    sheet_name ="sheet_"+str(i)
    with pd.ExcelWriter(file_name ) as writer:
        Table.to_excel(writer, sheet_name=sheet_name, index=False) 

结果报出来的结果是只有最后一个工作簿!!!多个dataframe也没法全部存进去。
在这里插入图片描述

with pd.ExcelWriter(file_name ) as writer 这段代码表示,pandas创建一个 ExcelWriter 对象,它负责管理写入Excel文件的过程,在我上面的例子中,使用 它来写入数据到file_name 文件里,并将 df DataFrame中的数据写入到这个文件下的,名为sheet_name 的工作表中。

也就是说,我在遍历所有的df,然后反复打开excel,反复存进去。每次修改都是覆盖原来的内容,所以最后,Excel只剩下最新一个df的数据。

逻辑应该是这样的:

  1. 读取excel表 ,把with pd.ExcelWriter(file_name ) as writer写在最外层
  2. 获取多个dataframe遍历(for循环dataframes)!!!
  3. 注意存入的时候,要起好sheet_name。不同的df如果要存入不同的工作簿,就要起不同的sheet_name ,不然还是会覆盖

【正确的改法】:


file_name="./tese.xlsx"
with pd.ExcelWriter( file_name ) as writer:   #读取excel表,写在最外层
    for i in range(len(dataframes)):  #for循环获取多个dataframe遍历
        sheet_name ="sheet_"+str(i) #起不同的表名
        Table=dataframes[i]
        Table.to_excel(writer, sheet_name=sheet_name, index=False) 

结果:

在这里插入图片描述

或者使用 openpyxl 库的方法。

这需要为每个工作簿创建一个 Worksheet 对象,并将它们保存到同一个工作簿(Workbook)中。
这个方法我没怎么用,如果是比较少工作簿的情况下,确实可以使用,不过我用上面的方法更多一点。

from openpyxl import Workbook

# 创建一个新的工作簿
wb = Workbook()

# 添加多个工作表
ws1 = wb.active
ws1.title = "Sheet 1"
ws1.append(["Column 1", "Column 2", "Column 3"])  # 添加标题行
ws1.append([1, 2, 3])  # 添加数据行

ws2 = wb.create_sheet("Sheet 2")
ws2.append(["Column A", "Column B"])
ws2.append([4, 5])

# 可以继续添加更多的工作表...

# 保存工作簿
wb.save("multiple_sheets.xlsx")

结果:
在这里插入图片描述在这里插入图片描述

这个方法也可以实现效果,两个表都顺利存入了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

XSS闯关小游戏(前13关)

挖掘思路 1.存在可控参数 2.页面存在回显 3.使用带有特殊字符的语句去测试&#xff0c;网站是否进行了实例化 ( 例如 ">123 ) 4.构造闭合&#xff0c;实现payload的逃逸 1 name处参数可控&#xff0c;直接打即可 2 这里知道<>被实体编码了 再测试">1…

想做个WPS的自动化代码,参考如下:

&#x1f3c6;本文收录于《全栈Bug调优(实战版)》专栏&#xff0c;主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&am…

大碗娱乐发布业务调整说明 取消艺人经纪业务

大碗娱乐今日发布业务调整说明&#xff1a;不再负责艺人业务&#xff0c;而贾玲导演将专注内容创作。据悉&#xff0c;其公司旗下艺人张小斐、许君聪、卜钰、何欢、张泰维、朱天福、曹贺军、刘宏禄的经纪合约均已到期&#xff0c;双方不再续约&#xff0c;但未来会共同寻求以其…

【HTML5】html5开篇基础(3)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

[大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作

​​​​​​Generation of Complex 3D Human Motion by Temporal and Spatial Composition of Diffusion Models L Mandelli, S Berretti - arXiv preprint arXiv:2409.11920, 2024 通过时间和空间组合扩散模型生成复杂的3D人物动作 摘要 本文提出了一种新的方法&#xff0…

Vue 学习

vue 核心语法 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Vue 核心语法测试</title> </head><body&…

Vue项目之Element-UI(Breadcrumb)动态面包屑效果 el-breadcrumb

效果预览 需要导航的页面Vue.js 最笨的方法就是在每个需要面包屑的页面中固定写好 <template><div class="example-container"><el-breadcrumb separator="/"

利用多模态输入的自我中心运动跟踪与理解框架:EgoLM

随着增强现实(AR)和虚拟现实(VR)技术的发展,对自我中心(第一人称视角)运动的精确跟踪和理解变得越来越重要。传统的单一模态方法在处理复杂场景时存在诸多局限性。为了解决这些问题,研究者们提出了一种基于多模态输入的自我中心运动跟踪与理解框架——EgoLM。本文将详细…

物流货运托运发货单二联三联打印软件定制 佳易王物流单管理系统操作教程

一、前言 物流货运托运发货单二联三联打印软件定制 佳易王物流单管理系统操作教程 1、软件为绿色免安装版&#xff0c;解压即可使用&#xff0c;已经内置数据库&#xff0c;不需再安装。 2、软件下载可以到本文章最后点击官网卡片下。 二、软件程序教程 1、如图&#xff0c;…

并发面试合集

1.创建线程的方式 区分线程和线程体的概念&#xff0c;线程体通俗点说就是任务。创建线程体的方式&#xff1a;像实现Runnable、Callable接口、继承Thread类、创建线程池等等&#xff0c;这些方式并没有真正创建出线程&#xff0c;严格来说&#xff0c;Java就只有一种方式可以…

Pygame中Sprite实现逃亡游戏4

在《Pygame中Sprite实现逃亡游戏3》中实现了玩家跳跃飞火的效果&#xff0c;接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。 1 飞火是否击中玩家的判断 判断飞火是否击中玩家的代码如图1所示。 图1 判断飞火是否击中玩家的代码 …

【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式结构重用

序言&#xff1a; 本文详细讲解了关于我们在页面上经常看到的轮播图在鸿蒙开发中如何用Swiper实现&#xff0c;介绍了Swiper的基本用法与属性&#xff0c;及如何面对大段的重复代码进行封装和重用&#xff08;Extend、Styles、Builder&#xff09;&#xff0c;使代码更加简洁易…

Miniforge详细安装教程(macOs和Windows)

(注&#xff1a;主要是解决商业应用anaconda收费问题&#xff0c;这是轻量级的代替&#xff0c;个人完全可以使用anaconda和miniconda) Miniforge 是一个轻量级的包管理器&#xff0c;类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境&#xff0c;专注于…

9.26 Buu俩题解

[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面&#xff0c;存在登录框可以注册&#xff0c;存在管理员页面(admin.php) ->既然存在管理员页面&#xff0c;且直接访问admin.php提示我们 说明存在身份验证&#xff0…

K8S的Pod IP

pod 的ip 一般是提供给pod1与pod2之间的通信&#xff0c;它有两个特点 1. Pod IP会随着Pod实例 的创新创建&#xff08;重启&#xff09;发生变化&#xff1b; 2. Pod IP只在集群内节点可见&#xff0c;外部无法直接访问

椭圆距离计算的简单方法

分析发现找到点到椭圆的最近距离等价于求解一元四次方程。想象一下一个圆和一个椭圆最多相交四次。从这个观点出发,问题转化为找到与椭圆仅相交一次的圆。如果用四次方程表示,其中两个根将在交点处共享,而另外两个根将会是复数。 尽管四次方程的封闭解确实存在,但迭代方法更…

使用Python和OpenCV生成灰阶图像

代码如下&#xff1a; import cv2 import numpy as npimg np.zeros((256, 256), np.uint8)for i in range(0,16):for j in range(0,16):img[i*16:(i1)*16][j*16:(j1)*16]i*16jcv2.imwrite(result.jpg, img) 效果如下&#xff1a;

Power Automate 设置流Owner不生效的bug

在查找某个功能没生效时&#xff0c;定位到是一个Power automate的流停了&#xff0c;查看原因是因为创建流的owner被disable了 但是当把流的owner更新为可用的用户时&#xff0c;流依旧没被触发&#xff0c;触发的条件很简单&#xff0c;某个表的记录创建时&#xff0c;因为是…

操作系统与进程

1.操作系统 操作系统是计算机中的一个重要软件&#xff0c;它是一个专门进行管理的软件。操作系统可以通过驱动程序来间接管理外部硬件&#xff0c;也可以为计算机中的程序提供一个稳定的运行环境&#xff0c;从而来方便管理各种程序的运行&#xff0c;让程序之间的运行互不影…

传知代码-基于图神经网络的知识追踪方法(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 1.论文概述 论文链接提出了一种基于图神经网络的知识追踪方法&#xff0c;称为基于图的知识追踪&#xff08;GKT&#xff09;。将知识结构构建为图&#xff0c;其中节点对应于概念&#xff0c;边对应于它们之间的…