학습 자료

pandas와 openpyxl을 함께 활용하는 방법

지금까지 배운 pandasopenpyxl은 표 형식의 데이터를 다루는 상황에 특화되어 있습니다.

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 생성

pandas DataFrame 생성
df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35] })
  • pandas 라이브러리를 사용해 DataFrame을 생성합니다.

  • NameAge라는 두 개의 열이 있으며, 각 열에 이름과 나이 데이터를 저장합니다.


2. pandas를 사용해 엑셀 파일로 저장

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로 엑셀 파일 열기 및 시트 선택

openpyxl을 사용하여 추가 수정 작업
wb = load_workbook(file_name) # 엑셀 파일 불러오기 ws = wb['Sheet1'] # 수정할 시트 선택
  • openpyxlload_workbook() 메소드를 사용하여 앞서 생성한 엑셀 파일 (output_file.xlsx)을 불러옵니다.

  • wb는 엑셀 파일을 참조하는 Workbook 객체입니다.

  • ws = wb['Sheet1']는 Sheet1 시트를 불러와서 선택합니다.

  • ws는 선택된 시트를 참조하는 Worksheet 객체입니다.


4. 셀 값 수정

A1 셀에 새로운 값을 추가
ws['A1'] = 'Updated Name'
  • ws['A1']은 시트에서 A1 셀을 가리킵니다.

  • A1 셀의 값을 'Updated Name'으로 변경합니다.

  • 원래 A1 셀에 저장되어 있던 값(예: 'Name')을 이 코드로 덮어씁니다.


5. 엑셀 파일 저장

wb.save()를 사용해 엑셀 파일 저장
wb.save(file_name)
  • save() 메소드를 사용하여 수정된 엑셀 파일을 저장합니다.

  • file_name에 해당하는 'output_file.xlsx' 파일에 반영된 내용을 저장합니다.

Quiz
0 / 1

Pandas와 openpyxl을 함께 사용하는 이유로 가장 적절한 것은 무엇일까요?

Pandas는 데이터 프레임을 생성하고, openpyxl은 엑셀 파일을 전송할 수 있기 때문

Pandas는 데이터 분석에 용이하고, openpyxl은 엑셀 파일의 세부 서식을 조정할 수 있기 때문

Pandas는 엑셀 파일의 서식을 조정하고, openpyxl은 데이터를 분석할 수 있기 때문

Pandas와 openpyxl 모두 데이터 시각화에 특화되어 있기 때문

학습 자료

AI 튜터

도움말

코드 에디터

코드 실행
코드 생성

실행 결과

결과물

문서가 비어 있습니다.

코드를 실행해보세요.