我想将一些pandas数据框填入现有 excel文件中。我按照以下说明操作: How to write to an existing excel file without overwriting data (using pandas)? 使用:
from openpyxl import load_workbook
import pandas as pd
import numpy as np
book=load_workbook("excel_proc.xlsx")
writer=pd.ExcelWriter("excel_proc.xlsx", engine="openpyxl")
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
data_df.to_excel(writer, sheet_name="example", startrow=100, startcol=5, index=False)
writer.save()
但是,将删除现有工作表,生成“示例”工作表,并且仅在定义的位置集成df。我做错了什么?我希望将“data_df”写入现有“示例”表中的现有excel文件中,保留其他表和数据。
由于
示例df:
data_df=pd.DataFrame(np.arange(12).reshape((2, 6)), index=["Time","Value"])
答案 0 :(得分:3)
我自己解决了这个问题。我意识到即使load_workbook也无法加载我的文件。因此,我更新了openpyxl软件包(conda install openpyxl)。版本无效:v2.3.2 (python 35)。现在正在运行的版本是:v2.4.0。
我真的不知道,如果这是最后的原因。但现在,excels被填充在定义的位置,数据被保留。
答案 1 :(得分:1)
您可能对学习xlwings感兴趣,这使得使用python中的excel文件变得更加容易。
在任何情况下,我都会先阅读工作表中的现有数据,在python中按照您的意愿组合数据,最后覆盖工作表。