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 중국어 웹사이트의 기타 관련 기사를 참조하세요!