5편 실전 자동화 1: 파이썬 엑셀 파일 합치기, 수십 개 파일 단 3초 만에 취합하는 법
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
매주 팀원들이 보내오는 주간 시황 보고서나, 여러 부서에서 취합해야 하는 매출 엑셀 파일들. 이것들을 일일이 열어 하나의 파일로 복사하고 붙여넣는 단순 작업에 아까운 시간을 버리고 계시지 않나요?
이전 3, 4편에서 배운 '변수'와 '반복문(for)'만 완벽히 이해했다면, 이제 파이썬을 활용해 이 지루한 엑셀 파일 취합 업무를 단 3초 만에 끝낼 수 있습니다.
오늘은 데이터 분석과 엑셀 제어에 가장 많이 쓰이는 판다스(Pandas) 라이브러리를 활용하여, 폴더 안의 모든 엑셀 파일을 한 번에 합치는 방법을 단계별(Step-by-Step)로 명확하게 알아보겠습니다.
1단계: 마법의 도구 상자, 판다스(Pandas) 불러오기
파이썬이 강력한 이유는 누군가 엑셀 작업을 쉽게 할 수 있도록 만들어둔 '도구 상자'를 무료로 가져다 쓸 수 있기 때문입니다.
가장 대표적인 도구 상자가 바로 판다스(Pandas)입니다. 리플릿(Replit)이나 파이썬 편집기 창에 다음과 같이 입력하여 도구 상자를 준비합니다.
import pandas as pd import os
import pandas as pd: 판다스라는 긴 이름 대신, 앞으로 코드 내에서 'pd'라는 짧은 별명으로 부르겠다는 뜻입니다.
import os: 내 컴퓨터나 클라우드의 '폴더(Directory)'에 접근하여 파일들을 찾아내기 위한 필수 도구입니다.
2단계: 합칠 엑셀 파일들이 있는 폴더 지정하기
컴퓨터에게 "어디에 있는 파일들을 합칠 것인가?"를 명확히 알려주어야 합니다. 여러 개의 시황 데이터나 정산 파일이 모여 있는 폴더의 경로를 변수에 담아줍니다.
folder_path = "./laonspace_reports/" file_list = os.listdir(folder_path)
folder_path: 취합할 파일들이 모여있는 폴더의 위치(경로)를 지정합니다.
os.listdir: 앞서 지정한 폴더 안에 들어있는 모든 파일의 이름들을 싹 다 읽어서 리스트(목록) 형태로 'file_list'라는 상자에 담아줍니다.
3단계: 반복문(for)으로 파일 읽어서 하나로 이어 붙이기
이제 지난 4편에서 배운 for 구문이 활약할 차례입니다. 파일 목록에서 엑셀 파일을 하나씩 꺼내어 읽은 뒤, 하나의 빈 도화지에 차곡차곡 쌓아 올리는 논리입니다.
all_data = []
for file in file_list: if file.endswith(".xlsx"): file_path = folder_path + file df = pd.read_excel(file_path) all_data.append(df)
all_data = []: 데이터를 차곡차곡 담아둘 거대한 빈 상자(리스트)를 하나 만듭니다.
if file.endswith(".xlsx"): 폴더 안에 이미지나 다른 파일이 섞여 있을 수 있으니, 이름 끝이 엑셀 확장자(.xlsx)로 끝나는 진짜 엑셀 파일만 골라내는 조건문입니다.
pd.read_excel: 엑셀 파일을 읽어서 파이썬이 통계를 낼 수 있는 표 형태로 변환합니다.
append: 방금 읽은 엑셀 표를 미리 만들어둔 거대한 상자(all_data)에 추가합니다.
4단계: 하나의 엑셀 파일로 완성하고 저장하기
상자 안에 수십 개의 엑셀 표가 순서대로 담겼습니다. 마지막으로 이것들을 하나의 표로 압축하여 새로운 엑셀 파일로 내보내면 모든 자동화 과정이 끝납니다.
merged_df = pd.concat(all_data, ignore_index=True) merged_df.to_excel("최종_시황통합본.xlsx", index=False)
pd.concat: 상자 안에 들어있는 여러 개의 표를 위아래로 길게 하나로 묶어줍니다.
to_excel: 하나로 묶인 최종 데이터를 우리가 익숙하게 사용하는 실제 엑셀 파일로 바탕화면에 내보냅니다.
실무 적용 시 반드시 확인해야 할 주의사항 및 한계
실제로 코드를 돌려보면 에러가 나거나 데이터가 엉망으로 밀려서 합쳐지는 경우가 종종 있습니다.
실무에서 가장 흔히 겪는 실수와 대처법은 다음과 같습니다.
열(Column) 이름의 완벽한 일치 합치려는 모든 엑셀 파일의 맨 윗줄(헤더) 이름이 정확히 똑같아야 합니다. A 파일은 '종목명', B 파일은 '주식명'으로 되어 있다면, 파이썬은 이를 다른 성격의 데이터로 인식하여 열을 옆으로 늘려버립니다. 실행 전 엑셀 파일들의 양식이 통일되어 있는지 반드시 확인하세요.
대용량 파일 처리의 물리적 한계 파일 하나의 크기가 수백 메가바이트(MB)가 넘어가는 거대한 파일을 수십 개 합치려 하면, 메모리(RAM) 부족으로 프로그램이 멈출 수 있습니다. 이럴 때는 한 번에 모든 데이터를 합치지 않고, 특정 열(Column)만 빼와서 가볍게 만들거나 쪼개서 읽는 고급 데이터 처리 기술이 추가로 필요합니다.
요약 및 마무리
파이썬의 판다스(Pandas) 도구를 활용하면 단순 반복적인 엑셀 파일 취합 업무를 획기적으로 단축할 수 있습니다.
os.listdir로 폴더 안의 파일 목록을 찾고, for 반복문과 pd.read_excel을 통해 데이터를 한곳에 모읍니다.
pd.concat 명령어로 데이터를 하나로 묶고, to_excel을 통해 최종 엑셀 파일로 깔끔하게 저장합니다.
에러를 방지하려면 합치려는 엑셀 파일들의 양식(열 이름)이 완벽히 동일한지 사전에 꼭 점검해야 합니다.
다음 6편에서는 매일 아침 내가 관심 있는 특정 키워드의 뉴스 기사나 시황 정보를 자동으로 긁어오는 '웹 크롤링 기초 (실전 자동화 2편)'에 대해 구체적인 코드와 함께 알아보겠습니다.
오늘 배운 엑셀 합치기 코드를 실무에 바로 적용해 보셨나요?
만약 엑셀 양식이 달라서 에러가 났거나 특정 시트(Sheet)만 지정해서 합치고 싶으시다면, 댓글로 겪고 계신 증상을 자세히 남겨주세요. 상황에 맞는 맞춤형 코드를 안내해 드리겠습니다!
#파이썬엑셀자동화 #엑셀파일합치기 #파이썬판다스 #업무시간단축 #직장인코딩독학
댓글
댓글 쓰기