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' 파일에 반영된 내용을 저장합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!