将pd数据框填入现有Excel工作表(使用openpyxl v2.3.2)

时间:2016-11-15 12:44:40

标签: python excel pandas dataframe

我想将一些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"])

2 个答案:

答案 0 :(得分:3)

我自己解决了这个问题。我意识到即使load_workbook也无法加载我的文件。因此,我更新了openpyxl软件包(conda install openpyxl)。版本无效:v2.3.2 (python 35)。现在正在运行的版本是:v2.4.0。

我真的不知道,如果这是最后的原因。但现在,excels被填充在定义的位置,数据被保留。

答案 1 :(得分:1)

您可能对学习xlwings感兴趣,这使得使用python中的excel文件变得更加容易。

在任何情况下,我都会先阅读工作表中的现有数据,在python中按照您的意愿组合数据,最后覆盖工作表。