본문 바로가기
PYTHON/중급학습

[중급 8편] CSV & 엑셀 파일 자동 처리.zip

by Kim.Sung 2025. 5. 14.
728x90

이번 편에서는 파이썬으로 업무 자동화에서 가장 많이 쓰이는  
CSV와 엑셀 파일을 **불러오고, 수정하고, 저장하는 실전 기술**을 다룹니다.

엑셀로 데이터 정리하고 매번 복사 붙여넣기 하던 분들,  
이제 파이썬으로 자동화해보세요.


✅ 1. CSV 파일 읽기 & 쓰기 (pandas 기본)

import pandas as pd

# CSV 파일 읽기
df = pd.read_csv("data/sales.csv")
print(df.head())

# 필요한 열만 추출해서 저장
df_filtered = df[["고객명", "매출"]]
df_filtered.to_csv("data/filtered_sales.csv", index=False)

📌 포인트  
- `read_csv()`로 읽고, `to_csv()`로 저장  
- `index=False`는 인덱스 번호 저장하지 않게 함

---

✅ 2. 엑셀(.xlsx) 파일 다루기

# 엑셀 읽기
df = pd.read_excel("data/월별매출.xlsx")

# 조건 필터링
high_sales = df[df["매출"] > 1000000]

# 다른 시트로 저장
with pd.ExcelWriter("data/고매출_리포트.xlsx", engine="openpyxl") as writer:
    high_sales.to_excel(writer, sheet_name="100만원 이상", index=False)

📌 엑셀 파일 저장 시 주의  
- `ExcelWriter`를 써야 여러 시트 저장 가능  
- openpyxl 설치 필요: `pip install openpyxl`

---

✅ 3. 파일 여러 개 자동 처리 (폴더 전체 반복)

import pandas as pd
import os

folder = "data/monthly_reports"
result = []

# 폴더 내 엑셀 파일 반복 처리
for file in os.listdir(folder):
    if file.endswith(".xlsx"):
        path = os.path.join(folder, file)
        df = pd.read_excel(path)
        result.append(df)

# 전체 결합
final = pd.concat(result)
final.to_excel("data/전체_매출_합본.xlsx", index=False)

📌 실제 보고서 통합, 부서별 파일 병합 등에 활용

---

✅ 4. 실전 상황 예시

✔ 매달 자동 저장되는 매출 보고서  
✔ 부서별 엑셀 보고서 자동 병합  
✔ CSV로 받은 고객 리스트 필터링 후 저장  
✔ 문자 발송용 번호 추출 & 정리

---

✅ 정리 요약

작업 | 메서드 | 사용 모듈
-----|--------|-----------
CSV 읽기 | read_csv | pandas
CSV 저장 | to_csv | pandas
엑셀 읽기 | read_excel | pandas
엑셀 저장 | to_excel / ExcelWriter | pandas + openpyxl
파일 반복 처리 | os.listdir + 반복문 | pandas + os

📌 다음 편 예고:  
**엑셀 & CSV 자동 메일 첨부 발송** 기능까지 이어갑니다.  
실무 자동화, 지금부터 진짜 시작입니다.