[실무 강의] 파이썬으로 수십 개 엑셀 파일 1분 만에 통합 보고서 만들기: pandas 기초 실습 완벽 마스터 튜토리얼

학습 목표

오늘 우리는 수십, 수백 개의 엑셀 파일에 흩어져 있는 데이터를 단 1분 만에 하나의 통합 보고서로 만드는 파이썬 자동화 기술을 학습할 것입니다. 수동으로 엑셀 파일을 하나씩 열어 복사하고 붙여넣는 비효율적인 작업은 이제 그만! 파이썬의 강력한 데이터 분석 라이브러리인 pandas를 활용하여 업무 시간을 획기적으로 단축하고, 오류를 최소화하는 방법을 익히는 것이 이번 강의의 핵심 목표입니다. 이 실습을 통해 여러분은 다음과 같은 능력을 갖추게 될 것입니다:

  • 폴더 내의 모든 엑셀 파일 목록을 자동으로 탐색하는 방법
  • 각 엑셀 파일을 효율적으로 읽어와 데이터프레임으로 변환하는 방법
  • 여러 개의 데이터프레임을 하나의 통합 데이터프레임으로 병합하는 방법
  • 통합된 데이터를 새로운 엑셀 파일로 저장하여 보고서를 완성하는 방법

이 기술은 영업 보고서, 재고 현황, 생산 기록 등 정형화된 여러 엑셀 파일을 다루는 모든 실무에 즉시 적용 가능하며, 여러분의 업무 생산성을 극대화하는 데 결정적인 역할을 할 것입니다.

사전 준비 사항

본격적인 실습에 앞서 원활한 진행을 위해 다음 환경을 준비해 주시기 바랍니다. 현재 연도는 2026년이므로, 최신 안정화된 환경을 기준으로 설명합니다.

1. 개발 환경 (IDE)

  • VS Code (Visual Studio Code): 파이썬 개발에 가장 널리 사용되고 강력한 기능을 제공하는 통합 개발 환경(IDE)입니다. 아직 설치되지 않았다면 VS Code 공식 웹사이트에서 다운로드하여 설치해 주세요. 파이썬 확장팩 설치도 잊지 마세요.

2. 운영체제 (OS)

  • Windows, macOS, Linux: 본 강의의 내용은 특정 운영체제에 종속되지 않으며, 위 세 가지 주요 운영체제 모두에서 동일하게 작동합니다.

3. 파이썬 (Python) 버전

  • Python 3.10 이상: 2026년 현재 가장 안정적이고 널리 사용되는 파이썬 버전입니다. 만약 구버전 파이썬이 설치되어 있다면, 최신 버전으로 업데이트하거나 별도의 가상 환경을 설정하여 실습하시기를 권장합니다.

4. 필수 설치 라이브러리

이번 실습을 위해 pandasopenpyxl 두 가지 라이브러리가 필요합니다. pandas는 데이터 처리 및 분석의 핵심 라이브러리이며, openpyxlpandas.xlsx 형식의 엑셀 파일을 읽고 쓰는 데 필요한 엔진 역할을 합니다. 터미널 또는 VS Code의 터미널을 열고 다음 명령어를 실행하여 설치합니다.

pip install pandas openpyxl

설치가 완료되면, 이제 모든 준비가 끝났습니다. 바로 실습을 시작해 보겠습니다!

단계별 실습 과정

이제부터 파이썬을 이용해 여러 엑셀 파일을 통합하는 과정을 단계별로 상세히 진행합니다. 각 단계를 꼼꼼히 따라오시면 누구나 쉽게 통합 보고서를 만들 수 있습니다.

1단계: 프로젝트 환경 설정 및 데이터 준비

먼저, 실습을 위한 프로젝트 폴더를 생성하고 가상의 엑셀 데이터 파일들을 준비합니다. 이 데이터는 실제 업무에서 사용하는 파일들과 유사한 구조를 가집니다.

  1. 새로운 폴더를 생성합니다. 예를 들어, excel_integrator라고 이름을 붙이겠습니다.
  2. excel_integrator 폴더 안에 data라는 하위 폴더를 생성합니다.
  3. data 폴더 안에 통합할 엑셀 파일들을 준비합니다. 실습을 위해 가상의 판매 데이터를 포함하는 엑셀 파일 몇 개를 직접 생성하거나, 예시로 제공되는 파일을 활용할 수 있습니다. 각 파일은 ‘날짜’, ‘제품명’, ‘수량’, ‘매출액’과 같은 동일한 열 이름을 가지고 있어야 합니다. 예를 들어, 다음과 같은 파일들을 생성합니다.
    • sales_Q1_2026.xlsx
    • sales_Q2_2026.xlsx
    • sales_Q3_2026.xlsx

    각 엑셀 파일의 내용은 다음과 같이 구성되어 있다고 가정합니다.

    날짜제품명수량매출액
    2026-01-15노트북1010000000
    2026-02-20마우스501000000

    이러한 파일들이 data 폴더 안에 준비되었다고 가정하겠습니다.

  4. excel_integrator 폴더의 최상위에 integrate_excel.py 파일을 생성합니다. 이 파일에 파이썬 코드를 작성할 것입니다.

2단계: 필요한 라이브러리 임포트

파이썬 스크립트의 가장 상단에 필요한 라이브러리들을 임포트합니다. pandas는 데이터 처리를 위해, os는 운영체제와 상호작용하여 파일 경로를 다루기 위해 사용됩니다.

import pandas as pd
import os
  • import pandas as pd: pandas 라이브러리를 pd라는 별칭으로 불러옵니다. 관례적으로 많이 사용됩니다.
  • import os: os 모듈은 파일 시스템 경로를 다루거나 디렉토리 내용을 읽는 등 운영체제와 관련된 기능을 제공합니다.

3단계: 엑셀 파일 목록 가져오기

통합할 엑셀 파일들이 위치한 디렉토리를 지정하고, 해당 디렉토리 내의 모든 .xlsx 파일을 찾아 그 목록을 만듭니다.

# 엑셀 파일들이 위치한 디렉토리 경로
# 현재 스크립트 파일(integrate_excel.py)이 있는 곳 기준으로 'data' 폴더를 지정합니다.
current_dir = os.path.dirname(os.path.abspath(__file__))
data_folder_path = os.path.join(current_dir, 'data')

# 디렉토리 내의 모든 파일 목록 가져오기
all_files = os.listdir(data_folder_path)

# .xlsx 확장자를 가진 파일만 필터링
excel_files = [f for f in all_files if f.endswith('.xlsx')]

print(f"발견된 엑셀 파일: {excel_files}")
  • current_dir = os.path.dirname(os.path.abspath(__file__)): 현재 실행 중인 파이썬 스크립트의 절대 경로를 얻습니다.
  • data_folder_path = os.path.join(current_dir, 'data'): current_dir'data'를 결합하여 data 폴더의 전체 경로를 안전하게 구성합니다. os.path.join은 운영체제에 맞는 경로 구분자(Windows의 \, macOS/Linux의 /)를 자동으로 사용합니다.
  • all_files = os.listdir(data_folder_path): 지정된 data_folder_path 내의 모든 파일과 폴더 이름을 리스트 형태로 반환합니다.
  • excel_files = [f for f in all_files if f.endswith('.xlsx')]: 리스트 컴프리헨션을 사용하여 all_files 리스트에서 이름이 .xlsx로 끝나는 파일만 걸러내어 excel_files 리스트에 저장합니다.

4단계: 각 엑셀 파일 읽고 데이터 통합하기

이제 필터링된 엑셀 파일 목록을 순회하며 각 파일을 읽어 데이터프레임으로 만들고, 이들을 하나의 큰 데이터프레임으로 통합합니다.

# 모든 데이터프레임을 담을 리스트 초기화
all_dataframes = []

# 각 엑셀 파일을 읽어 데이터프레임 리스트에 추가
for excel_file in excel_files:
    file_path = os.path.join(data_folder_path, excel_file)
    try:
        df = pd.read_excel(file_path)
        all_dataframes.append(df)
        print(f"'{excel_file}' 파일 읽기 완료.")
    except Exception as e:
        print(f"'{excel_file}' 파일 읽기 실패: {e}")

# 모든 데이터프레임 통합
if all_dataframes:
    combined_df = pd.concat(all_dataframes, ignore_index=True)
    print("모든 엑셀 파일의 데이터가 성공적으로 통합되었습니다.")
else:
    combined_df = pd.DataFrame()
    print("통합할 엑셀 파일이 없습니다.")
  • all_dataframes = []: 개별 엑셀 파일에서 읽어온 데이터프레임들을 임시로 저장할 빈 리스트를 생성합니다.
  • for excel_file in excel_files: 루프를 통해 excel_files 리스트의 각 파일 이름을 하나씩 가져옵니다.
  • file_path = os.path.join(data_folder_path, excel_file): data 폴더 경로와 현재 엑셀 파일 이름을 결합하여 파일의 완전한 경로를 생성합니다.
  • df = pd.read_excel(file_path): pandasread_excel 함수를 사용하여 지정된 엑셀 파일을 읽어와 데이터프레임(DataFrame) 객체로 반환합니다. 이 함수는 자동으로 첫 번째 시트를 읽습니다.
  • all_dataframes.append(df): 읽어온 데이터프레임을 all_dataframes 리스트에 추가합니다.
  • try...except 블록은 파일 읽기 중 발생할 수 있는 오류(예: 파일 손상, 잘못된 형식)를 처리하여 스크립트가 중단되지 않도록 합니다.
  • combined_df = pd.concat(all_dataframes, ignore_index=True): pd.concat 함수는 리스트에 담긴 여러 데이터프레임을 수직으로(행 방향으로) 이어 붙여 하나의 데이터프레임으로 만듭니다. ignore_index=True는 각 원본 데이터프레임의 인덱스를 무시하고 새로운 통합 데이터프레임에 0부터 시작하는 연속적인 인덱스를 부여하도록 합니다.
  • if all_dataframes: ... else: ...: 통합할 데이터프레임이 없는 경우를 대비하여 빈 데이터프레임을 생성하도록 예외 처리를 합니다.

5단계: 통합 보고서 엑셀 파일로 저장하기

마지막으로, 통합된 combined_df 데이터프레임을 새로운 엑셀 파일로 저장하여 최종 보고서를 완성합니다.

# 통합 보고서 저장 경로 설정
output_file_path = os.path.join(current_dir, 'integrated_report_2026.xlsx')

# 통합된 데이터를 새로운 엑셀 파일로 저장
combined_df.to_excel(output_file_path, index=False)

print(f"통합 보고서가 '{output_file_path}' 에 성공적으로 저장되었습니다.")
  • output_file_path = os.path.join(current_dir, 'integrated_report_2026.xlsx'): 현재 스크립트가 있는 폴더에 integrated_report_2026.xlsx라는 이름으로 저장될 파일의 전체 경로를 지정합니다.
  • combined_df.to_excel(output_file_path, index=False): pandas 데이터프레임의 to_excel 메서드를 사용하여 데이터프레임을 엑셀 파일로 내보냅니다. index=False는 데이터프레임의 인덱스(각 행의 번호)를 엑셀 파일에 쓰지 않도록 지정하는 중요한 옵션입니다. 이 옵션을 사용하지 않으면 엑셀 파일에 불필요한 인덱스 열이 추가됩니다.

결과 확인

모든 코드를 작성하고 실행했다면, 이제 최종 결과물을 확인해 볼 차례입니다. VS Code에서 integrate_excel.py 파일을 실행하고, 스크립트가 완료되면 프로젝트 폴더(excel_integrator)로 이동하여 integrated_report_2026.xlsx 파일이 생성되었는지 확인하세요.

생성된 integrated_report_2026.xlsx 파일을 더블 클릭하여 열어보면, data 폴더 안에 있던 모든 개별 엑셀 파일의 데이터가 하나의 시트에 깔끔하게 통합되어 있는 것을 확인할 수 있습니다. 수십 개의 파일을 수동으로 열어 복사하고 붙여넣는 데 걸렸을 시간이 단 1분, 아니 그보다 훨씬 짧은 시간에 파이썬 스크립트 실행으로 대체되었음을 직접 경험하게 됩니다.

이것이 바로 파이썬과 pandas가 여러분의 실무에 가져다줄 혁신적인 변화입니다. 단순히 파일을 통합하는 것을 넘어, 이 통합된 데이터를 기반으로 추가적인 데이터 분석(예: 특정 제품의 총 매출 계산, 분기별 실적 비교 등)을 pandas를 활용하여 더욱 심층적으로 진행할 수 있습니다. 다음 강의에서는 이렇게 통합된 데이터를 기반으로 시각화 및 고급 분석을 수행하는 방법을 다루게 될 것입니다. 오늘 배운 내용을 바탕으로 여러분의 업무에 바로 적용해 보시기 바랍니다.

댓글 남기기