首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不覆盖数据的情况下写入现有的excel文件(使用pandas)?

如何在不覆盖数据的情况下写入现有的excel文件(使用pandas)?
EN

Stack Overflow用户
提问于 2013-11-26 22:05:23
回答 11查看 245.8K关注 0票数 148

我使用pandas以如下方式写入excel文件:

代码语言:javascript
复制
import pandas

writer = pandas.ExcelWriter('Masterfile.xlsx') 

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

Masterfile.xlsx已经由许多不同的选项卡组成。但是,它还没有包含"Main“。

Pandas正确地写入“主”页,不幸的是它也删除了所有其他的标签页。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-11-26 23:45:59

Pandas docs说它对xlsx文件使用openpyxl。快速浏览一下ExcelWriter中的代码会给出一些线索,比如下面这样的代码可能会成功:

代码语言:javascript
复制
import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book

## ExcelWriter for some reason uses writer.sheets to access the sheet.
## If you leave it empty it will not know that sheet Main is already there
## and will create a new sheet.

writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()
票数 176
EN

Stack Overflow用户

发布于 2017-03-07 07:46:38

openpyxl版本2.4.0pandas版本0.19.2中,@ski的过程变得更简单了:

代码语言:javascript
复制
import pandas
from openpyxl import load_workbook

with pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') as writer:
    writer.book = load_workbook('Masterfile.xlsx')
    data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
#That's it!
票数 25
EN

Stack Overflow用户

发布于 2019-01-15 04:42:09

从pandas 0.24开始,您可以使用ExcelWritermode关键字参数来简化这一过程

代码语言:javascript
复制
import pandas as pd

with pd.ExcelWriter('the_file.xlsx', engine='openpyxl', mode='a') as writer: 
     data_filtered.to_excel(writer) 
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20219254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档