pandas 写Excel 追加同一sheet内容,而不覆盖原数据


  最近在工作的时候需要追加写Excel,但是在百度上搜的都不是pandas 最新的版本,都是旧版本,官网给的列子也骗我,只好自己去读源码,找原因,今天把这个记录下来,省着以后再忘。

  Python版本:3.9

  pandas版本:1.3.0

首先呢,创造一下数据:

from pandas import ExcelWriter
import pandas as pd

df = pd.DataFrame([i for i in range(1, 10)])
with ExcelWriter("path_to_file.xlsx", mode="w", engine="openpyxl") as writer:
    df.to_excel(writer, sheet_name="Sheet31", index_label="数据")

得到的样本数据为:

得到如图所示的数据

然后我们进行追加操作:

with ExcelWriter("path_to_file.xlsx", mode="a", engine="openpyxl") as writer:
    writer.if_sheet_exists = "replace"  # 在此版本的pandas 中,加入的这个属性,他有三个值:now , replace, error 这三个属性分别对应着:创建新的sheet,替换当前sheet里面的内容,当存在sheet 时,抛出异常
    df1 = pd.read_excel("path_to_file.xlsx", index_col="数据")  # 由于没有找到好的方法,所以我们读出之前文件的内容
    f = [df1, df]
    result = pd.concat(f, axis=0)  # 将两个文件concat,也就是合并
    result.to_excel(writer, sheet_name="Sheet31", index_label="数据") # 保存 注意:index_label必须要和上面的index_col相同,不然下次读文件的时候会出index_col不存在的错误

参考图片

致辞,敬礼!博客园原创,引用请贴出原文链接。感谢支持。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM