>백엔드 개발 >파이썬 튜토리얼 >덮어쓰지 않고 Pandas를 사용하여 기존 Excel 파일에 데이터를 추가하는 방법은 무엇입니까?

덮어쓰지 않고 Pandas를 사용하여 기존 Excel 파일에 데이터를 추가하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-27 09:37:10640검색

How to Append Data to an Existing Excel File Using Pandas Without Overwriting?

Pandas를 사용하여 데이터를 덮어쓰지 않고 기존 Excel 파일에 쓰기

Pandas를 사용하여 기존 Excel 파일에 새 데이터를 추가할 때 기본 동작은 다음과 같습니다. 새 데이터가 기존 콘텐츠를 덮어쓰도록 합니다. 다른 시트의 기존 데이터를 보존하려는 경우 문제가 될 수 있습니다.

문제

다음 코드를 고려하세요.

import pandas

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

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

writer.save()

이 코드가 실행되면 data_filtered의 데이터가 Excel 파일 Masterfile.xlsx의 "Main"이라는 새 시트에 추가됩니다. 그러나 파일의 다른 모든 시트도 삭제합니다.

해결책

기존 데이터를 덮어쓰지 않으려면 엔진을 사용할 수 있습니다. =ExcelWriter의 'openpyxl' 옵션. 이를 통해 프로세스를 더 효과적으로 제어할 수 있는 기본 openpyxl 개체에 액세스할 수 있습니다.

다음은 덮어쓰지 않고 기존 Excel 파일에 추가하도록 위 코드를 수정하는 방법입니다.

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()

By Writer.sheets를 기존 시트 사전으로 명시적으로 설정하면 ExcelWriter가 기존 시트를 인식하고 덮어쓰지 않도록 합니다.

위 내용은 덮어쓰지 않고 Pandas를 사용하여 기존 Excel 파일에 데이터를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.