2016-11-15 2 views
4

기존 엑셀 파일에 팬더 데이터 프레임을 입력하고 싶습니다. 사용 How to write to an existing excel file without overwriting data (using pandas)? : 기존 엑셀 시트에 pd 데이터 프레임을 입력하십시오 (openpyxl v2.3.2 사용)

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 정의 된 위치에서 통합 I는 지시를 하였다. 나는 무엇을 잘못 했는가? 나는 "data_df"를 기존 "example"시트의 기존 엑셀 파일에 쓰고 다른 시트와 데이터는 그대로 유지합니다.

감사

예 DF

:

data_df=pd.DataFrame(np.arange(12).reshape((2, 6)), index=["Time","Value"]) 

답변

1

당신은 그것을 훨씬 쉽게 파이썬에서 엑셀 파일로 작업 할 수있는 xlwings 학습에 관심이있을 수 있습니다.

어쨌든 시트의 기존 데이터를 읽고, 파이썬에서 원하는대로 데이터를 결합한 다음 시트를 덮어 씁니다.

2

나는 혼자서 문제를 해결했다. 나는 심지어 load_workbook이 내 파일을로드 할 수 없다는 것을 깨달았다. 따라서 은 openpyxl 패키지 (conda install openpyxl)을 업데이트했습니다. 버전 이 작동하지 않습니다 : v2.3.2 (python 35). 현재 버전이 작동합니다 : v2.4.0.

끝 부분에있는 이유인지 모르겠다. 그러나 지금은 정의 된 위치에 뛰어난 데이터가 채워지고 데이터가 유지됩니다.

+0

감사합니다. 매우 유용한 정보입니다. – MaxU

관련 문제