pandas와 openpyxl을 함께 활용하는 방법
지금까지 배운 pandas
와 openpyxl
은 표 형식의 데이터를 다루는 상황에 특화되어 있습니다.
pandas는 대용량 데이터를 처리하고 분석하는 데 탁월하며, openpyxl은 엑셀 파일의 서식을 세밀하게 조정할 수 있습니다.
이번 수업에서는 이 두 가지 라이브러리를 함께 사용해 엑셀 파일을 다루는 방법을 알아보겠습니다.
pandas와 openpyxl 함께 활용하기
다음 코드 예시는 pandas로 데이터를 처리한 후 openpyxl을 사용해 엑셀 파일에 데이터를 저장하고, 추가적인 서식을 적용하는 예제입니다.
import pandas as pd from openpyxl import load_workbook # pandas DataFrame 생성 df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35] }) # pandas를 사용해 엑셀 파일로 저장 (ExcelWriter를 사용해 파일을 만듦) file_name = 'output_file.xlsx' with pd.ExcelWriter(file_name, engine='openpyxl') as writer: df.to_excel(writer, index=False, sheet_name='Sheet1') # openpyxl을 사용하여 추가 수정 작업 wb = load_workbook(file_name) # 엑셀 파일 불러오기 ws = wb['Sheet1'] # 수정할 시트 선택 # 예를 들어, A1 셀에 새로운 값을 추가 ws['A1'] = 'Updated Name' # 엑셀 파일 저장 wb.save(file_name) print("작업을 완료했습니다")
위 코드는 다음과 같은 순서로 동작합니다.
코드 상세 설명
1. Pandas로 DataFrame 생성
df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35] })
-
pandas
라이브러리를 사용해DataFrame
을 생성합니다. -
Name
과Age
라는 두 개의 열이 있으며, 각 열에 이름과 나이 데이터를 저장합니다.
2. pandas를 사용해 엑셀 파일로 저장
file_name = 'output_file.xlsx' with pd.ExcelWriter(file_name, engine='openpyxl') as writer: df.to_excel(writer, index=False, sheet_name='Sheet1')
-
ExcelWriter
를 사용해DataFrame
을 엑셀 파일로 저장합니다. -
file_name
은 엑셀 파일의 이름으로,output_file.xlsx
로 설정됩니다. -
engine='openpyxl'
: 엑셀 파일 처리를 위한 엔진으로openpyxl
을 사용합니다. -
to_excel()
메소드는DataFrame
을 엑셀 파일로 변환하는 역할을 합니다. -
index=False
: 인덱스를 제외하고 저장합니다. -
sheet_name='Sheet1'
: 엑셀 파일에서 데이터를 저장할 시트 이름을 "Sheet1"로 설정합니다.
3. openpyxl로 엑셀 파일 열기 및 시트 선택
wb = load_workbook(file_name) # 엑셀 파일 불러오기 ws = wb['Sheet1'] # 수정할 시트 선택
-
openpyxl
의load_workbook()
메소드를 사용하여 앞서 생성한 엑셀 파일 (output_file.xlsx
)을 불러옵니다. -
wb
는 엑셀 파일을 참조하는 Workbook 객체입니다. -
ws = wb['Sheet1']
는 Sheet1 시트를 불러와서 선택합니다. -
ws
는 선택된 시트를 참조하는 Worksheet 객체입니다.
4. 셀 값 수정
ws['A1'] = 'Updated Name'
-
ws['A1']
은 시트에서 A1 셀을 가리킵니다. -
A1 셀의 값을
'Updated Name'
으로 변경합니다. -
원래 A1 셀에 저장되어 있던 값(예: 'Name')을 이 코드로 덮어씁니다.
5. 엑셀 파일 저장
wb.save(file_name)
-
save()
메소드를 사용하여 수정된 엑셀 파일을 저장합니다. -
file_name
에 해당하는 'output_file.xlsx' 파일에 반영된 내용을 저장합니다.
Pandas와 openpyxl을 함께 사용하는 이유로 가장 적절한 것은 무엇일까요?
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result
The document is empty.
Try running the code.