CodeGym /행동 /Python SELF KO /pandas 라이브러리를 사용하여 Excel 파일에 데이터 저장하기

pandas 라이브러리를 사용하여 Excel 파일에 데이터 저장하기

Python SELF KO
레벨 27 , 레슨 3
사용 가능

안녕, 개발자 친구들! 여러분 잘 지내고 있길 바래. 혹시 그렇지 않아도, 이 강의가 여러분의 하루를 조금이라도 더 좋게 만들어 주길 바라. 오늘은 귀여운 라이브러리 pandas를 사용해 Excel 파일에 데이터를 저장하는 법을 배워볼 거야. 맞아, 우리가 모두 들어봤던 그 라이브러리. 이 강의는 자동화의 세계로 나아가는 중요한 첫걸음이 될 거야. 보고서 작성에서부터 가계부 관리까지, 모든 걸 자동화할 수 있도록 도와줄 거야! 혹시 엑셀 자동화의 달인이 되고 싶다고 꿈꿨던 적 있어? (안 그랬어? 이상하네?) 그렇다면 지금 올바른 길을 걷고 있어.

1. pandas로 Excel에 데이터 저장의 기본

이제, 숫자와 텍스트가 들어 있는 DataFrame이 있다고 가정해 보자. 이것을 멋진 Excel 파일로 바꾸고 싶어. pandas를 이용해서 어떻게 할 수 있을까? 정말 간단해! pandas에는 to_excel이라는 멋진 메서드가 있어. 이 메서드가 데이터를 저장하는 모든 문제를 해결해 줄거야.

이게 어떻게 작동하는 걸까?

DataFrame을 Excel 파일로 저장하려면 to_excel 메서드를 사용하면 돼. 이 함수는 우리가 저장하고 싶은 파일 이름뿐만 아니라, 데이터를 저장할 시트 이름 같은 것도 지정할 수 있게 해줘. 아래 작은 예제를 한 번 보자:

Python

import pandas as pd

# 작은 DataFrame 생성
data = {
    '과일': ['사과', '바나나', '체리'],
    '수량': [10, 5, 2]
}
df = pd.DataFrame(data)

# DataFrame을 Excel 파일로 저장
df.to_excel('fruits.xlsx', sheet_name='좋아하는 과일들', index=False)

print("데이터가 'fruits.xlsx' 파일에 성공적으로 저장되었습니다.")
    

파라미터 좀 더 알아보기

  • 파일 이름: 'fruits.xlsx'이라고 지정했어. '.xlsx' 확장자를 꼭 추가해야 해, 그렇지 않으면 Excel이 파일을 이해하지 못할 거야.
  • sheet_name: '좋아하는 과일들'이라고 지정했어. 데이터가 기록되는 시트 이름이야.
  • index: 기본적으로 pandas는 DataFrame의 인덱스를 첫 번째 열로 기록해. index=False를 지정하면 이걸 방지할 수 있어.

2. 여러 개의 시트 작업

하나의 Excel 파일에 여러 시트로 데이터를 저장하는 건 어때? 데이터가 많으면 즐길 거리도 많지! 아래 예제를 보자.

pandas.ExcelWriter를 사용할 거야. 이걸 이용하면 파일을 더 유연하게 작업할 수 있어.

Python

# 두 개의 DataFrame 생성
data1 = {'과일': ['사과', '오렌지'], '수량': [5, 7]}
data2 = {'채소': ['당근', '양배추'], '수량': [3, 4]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 여러 개의 시트를 포함한 Excel 파일 생성
with pd.ExcelWriter('produce.xlsx') as writer:
    df1.to_excel(writer, sheet_name='과일', index=False)
    df2.to_excel(writer, sheet_name='채소', index=False)

print("데이터가 'produce.xlsx' 파일의 여러 시트에 성공적으로 저장되었습니다.")
    

이게 왜 필요할까?

여러 시트로 작업하는 건 데이터가 카테고리별로 논리적으로 나뉘어 있을 때 유용해. 예를 들어 각 월별 보고서나 다양한 제품 종류 같은 데이터를 저장할 때 말이야. Excel을 하나의 파일 안에 모든 데이터를 보관할 수 있는 유용한 컨테이너로 만들어줘. 데이터를 시트별로 나눠서 깔끔하게 정리할 수 있지.

3. 실제 과제

지금은 작은 도전에 도전해볼 시간. 여러분이 책 판매 데이터를 하나의 Excel 파일에 저장해볼거야. 두 개의 시트를 만들 거야: 하나는 1월 데이터용이고, 다른 하나는 2월 데이터용이야. 아래 데이터를 참고하면서 시작해봐:

  • 1월: 책 "모두를 위한 파이썬" (판매: 50), "JavaScript의 비밀" (판매: 30).
  • 2월: 책 "모두를 위한 파이썬" (판매: 70), "JavaScript의 비밀" (판매: 40).

직접 한번 해보고, 도움이 필요하면 아래 예제를 확인해봐.

Python

# 과제의 예제 해결

# 1월 데이터
january_data = {'책': ['모두를 위한 파이썬', 'JavaScript의 비밀'], '판매': [50, 30]}
january_df = pd.DataFrame(january_data)

# 2월 데이터
february_data = {'책': ['모두를 위한 파이썬', 'JavaScript의 비밀'], '판매': [70, 40]}
february_df = pd.DataFrame(february_data)

# 두 달의 데이터를 포함한 Excel 파일 생성
with pd.ExcelWriter('book_sales.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='1월', index=False)
    february_df.to_excel(writer, sheet_name='2월', index=False)

print("데이터가 'book_sales.xlsx' 파일에 성공적으로 저장되었습니다.")
    

파일 book_sales.xlsx를 확인하고, 생성된 시트를 확인해봐!

4. 솔루션 논의와 최적화

pandas를 사용해 Excel에 데이터를 저장하는 과정이 꽤 간단하다는 걸 알 수 있었지. 하지만 몇 가지 주의할 점이 있어:

  • 메모리 최적화: DataFrame이 엄청나게 크다면, 데이터를 나눠서 순차적으로 저장하는 것을 고려해봐.
  • 포맷팅: 테이블 헤더에 스타일을 추가하는 등 포맷팅을 추가할 수 있어. 이를 위해 openpyxl 라이브러리와 그 메서드를 사용해야 해.
  • 다중 기록: 동일한 파일에 데이터를 자주 저장하려면, ExcelWriter에서 mode='a'를 사용해 기존 데이터에 새 데이터를 추가하는 것도 고려해봐.

미래 작업을 향상시키기 위한 몇 가지 솔루션

앞으로 여러분이 자동화의 왕(혹은 여왕)이 되었을 때, 문제를 찾아내고 해결하는 능력이 필요할 거야. 예를 들어, 회사가 매일의 보고서를 수집하기로 결정했다면, pandasExcelWriter를 사용해 이 프로세스를 자동화할 수 있어. 아마도 공휴일과 주말을 자동으로 확인해서 그 날들의 데이터를 무시하게 만드는 걸 자동화할 수도 있을 거야.

그러니까, 실험하고 작업을 최적화하는 걸 두려워하지 마! Python과 pandas는 이 모든 걸 가능하게 해줄 거야.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION