> 백엔드 개발 > 파이썬 튜토리얼 > Pandas를 사용하여 Python의 기존 Excel 시트에 새 DataFrame을 추가하는 방법은 무엇입니까?

Pandas를 사용하여 Python의 기존 Excel 시트에 새 DataFrame을 추가하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-02 15:22:11
원래의
508명이 탐색했습니다.

How to Append a New DataFrame to an Existing Excel Sheet in Python Using Pandas?

Python Pandas를 사용하여 기존 Excel 시트에 새 데이터 프레임 추가

이 기사에서는 기존 Excel 시트에 새 데이터 프레임을 추가하는 방법을 살펴보겠습니다. Python을 사용한 Excel 스프레드시트 Pandas.

문제:

Pandas to_excel() 함수를 사용하여 기존 Excel 시트에 새 데이터 프레임을 추가하면 기존 데이터를 덮어씁니다. 목표는 기존 콘텐츠를 유지하면서 현재 시트의 끝에 새 데이터를 추가하는 것입니다.

해결책:

이 문제를 해결하려면 다음 단계를 활용할 수 있습니다.

  1. 기존 로드 통합 문서:

    • openpyxl 패키지를 사용하여 기존 Excel 통합 문서를 로드합니다.
    • 기존 시트 이름을 목록에 저장합니다.
  2. 새것을 준비하세요 데이터 프레임:

    • 새 데이터 프레임에서 불필요한 행이나 열을 제거합니다.
  3. 새 통합 문서 작성기 만들기:

    • 다음을 사용하여 ExcelWriter 개체를 만듭니다. 기존 통합 문서를 출력으로 지정하는 Pandas.
    • 기존 시트가 존재하지 않는 경우 엔진을 "openpyxl"로, 모드를 "a"로, if_sheet_exists를 "new"로 설정합니다.
  4. 새로 쓰기 데이터 프레임:

    • ExcelWriter로 생성된 새 시트에 새 데이터 프레임을 씁니다.
    • 필요에 따라 셀 형식을 조정합니다.
  5. 새 셀에서 기존 셀로 복사 시트:

    • Pandas는 내부 추가를 지원하지 않기 때문에 openpyxl을 사용하여 기존 데이터의 끝부터 시작하여 새 시트의 셀을 기존 시트에 복사합니다.
  6. 새 항목 제거 시트:

    • 데이터를 복사한 후 새 데이터 프레임을 작성하기 위해 생성된 새 시트를 제거합니다.
  7. 통합 문서 저장 및 닫기:

    • 통합 문서를 닫고 닫습니다.

예:

import pandas as pd
import openpyxl
from openpyxl.utils import get_column_letter

# Load existing workbook
workbook = openpyxl.load_workbook("existing_excel.xlsx")
sheet_names = workbook.sheetnames

# Prepare new dataframe
new_df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Carol"],
    "Age": [25, 30, 35]
})

# Create new workbook writer
with pd.ExcelWriter("existing_excel.xlsx", engine="openpyxl", mode="a", if_sheet_exists="new") as writer:
    # Write new dataframe
    new_df.to_excel(writer, sheet_name="NewData", index=False)

    # Get worksheet objects
    new_sheet = writer.sheets["NewData"]
    existing_sheet = workbook["ExistingData"]

    # Get last row in existing sheet
    last_row = existing_sheet.max_row

    # Copy cells from new sheet to existing sheet
    copy_excel_cell_range(
        src_ws=new_sheet,
        tgt_ws=existing_sheet,
        src_min_row=2,
        src_max_row=new_sheet.max_row,
        tgt_min_row=last_row + 1,
        with_style=True
    )

    # Remove temporary sheet
    workbook.remove(new_sheet)

# Save and close
workbook.save("existing_excel.xlsx")
로그인 후 복사

이 접근 방식을 따르면 시트를 덮어쓰지 않고도 기존 Excel 시트에 새 데이터를 원활하게 추가할 수 있습니다. 기존 콘텐츠입니다.

위 내용은 Pandas를 사용하여 Python의 기존 Excel 시트에 새 DataFrame을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿