Pandas 데이터프레임(DataFrame)을 하나의 엑셀 파일에 여러 시트로 나누어 저장하려면 pd.ExcelWriter() 메서드를 사용하면 됩니다. ExcelWriter()를 사용하기 전에 openpyxl 패키지가 설치되어 있는지 먼저 확인하세요.
openpyxl이 설치되어 있지 않다면 다음 명령으로 간단히 설치할 수 있습니다.
pip install openpyxl
진행 단계
- 2차원 형태의, 크기가 가변적이며 이질적인 데이터를 포함할 수 있는 표 형태의 데이터프레임 df1을 생성합니다.
- 입력 데이터프레임 df1을 출력하여 확인합니다.
- 또 다른 데이터프레임 df2를 생성하고 출력합니다.
- ExcelWriter() 메서드를 사용해 지정된 데이터를 엑셀 시트에 작성합니다.
예제 코드
import pandas as pd
# 첫 번째 데이터프레임 생성
df1 = pd.DataFrame(
[[5, 2], [4, 1]],
index=["One", "Two"],
columns=["Rank", "Subjects"]
)
# 두 번째 데이터프레임 생성
df2 = pd.DataFrame(
[[15, 21], [41, 11]],
index=["One", "Two"],
columns=["Rank", "Subjects"]
)
print("DataFrame 1:\n", df1)
print("DataFrame 2:\n", df2)
# ExcelWriter를 사용해 여러 시트에 저장
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet_name_1')
df2.to_excel(writer, sheet_name='Sheet_name_2')실행 결과
DataFrame 1:
Rank Subjects
One 5 2
Two 4 1
DataFrame 2:
Rank Subjects
One 15 21
Two 41 11결과 확인
코드를 실행하면 프로젝트 디렉터리에 "output.xlsx"라는 이름의 엑셀 파일이 생성되고, 두 개의 데이터프레임 값이 각각 Sheet_name_1과 Sheet_name_2라는 서로 다른 시트에 저장됩니다.
이 방식의 장점은 with 문을 사용하기 때문에 모든 시트 작성이 완료된 후 파일이 자동으로 저장되고 닫힌다는 점입니다. 세 개 이상의 시트가 필요한 경우에도 to_excel() 호출을 반복적으로 추가하고 sheet_name 매개변수만 다르게 지정하면 됩니다.