>백엔드 개발 >파이썬 튜토리얼 >기존 데이터를 덮어쓰지 않고 Pandas를 사용하여 Excel 파일에 쓸 수 있나요?

기존 데이터를 덮어쓰지 않고 Pandas를 사용하여 Excel 파일에 쓸 수 있나요?

DDD
DDD원래의
2024-12-11 11:34:11271검색

How Can I Use Pandas to Write to an Excel File Without Overwriting Existing Data?

Pandas로 Excel 덮어쓰기 처리

Pandas는 Excel 파일에 쓰기 위한 강력한 옵션을 제공하지만 해당 내용을 덮어쓰지 않고 기존 파일에 쓰면 문제가 발생합니다. 기본적으로 pandas.ExcelWriter는 시트를 생성할 때 기존 데이터를 재정의합니다.

예 및 문제

다음 코드를 고려하세요.

import pandas as pd

writer = pd.ExcelWriter('Masterfile.xlsx') 
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()

이 시나리오에서는 "Masterfile.xlsx "에 기존 탭이 있습니다. 이 코드가 실행되면 새로운 "기본" 시트가 생성되고 채워지지만 다른 모든 탭은 지워집니다.

해결책

데이터 손실을 방지하기 위해 Pandas는 XLSX 작업에 openpyxl 라이브러리를 사용합니다. 파일. 다음은 코드의 향상된 버전입니다.

import pandas as pd
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pd.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

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

설명

  • load_workbook은 기존 Excel 파일을 열고 이를 book 변수에 할당합니다.
  • ExcelWriter가 초기화됩니다. openpyxl 엔진을 사용하려면engine='openpyxl' 매개변수를 사용하세요. writing.
  • writer.book 속성은 book 변수로 설정되어 작성자를 기존 통합 문서에 연결합니다.
  • writer.sheets는 모든 기존 시트의 사전으로 업데이트되어 "기본" 시트가 인식되고 유지됩니다.
  • Pandas의 to_excel 메소드는 영향을 주지 않고 "기본" 시트에 대한 데이터를 채웁니다. 기타.
  • writer.save는 기존 데이터와 새 데이터를 모두 보존하면서 작업을 완료합니다.

위 내용은 기존 데이터를 덮어쓰지 않고 Pandas를 사용하여 Excel 파일에 쓸 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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