안녕하세요! 수석 IT 교육 강사입니다. 이번 시간에는 엑셀(Excel) 데이터를 특정 조건에 따라 필터링하고, 그 결과를 단 10초 만에 새로운 파일로 자동 저장하는 실무 기술을 마스터해 보겠습니다. 매일 반복되는 수작업 데이터 처리에서 벗어나 파이썬(Python)을 활용한 자동화의 강력함을 직접 경험하실 수 있을 겁니다. 복잡하고 시간이 많이 소요되던 데이터 정제 작업을 이제는 클릭 몇 번으로 해결할 수 있는 능력을 갖추게 될 것입니다. 이는 여러분의 업무 효율을 극대화하고, 더 중요한 전략적 업무에 집중할 수 있도록 도와줄 핵심 역량이 될 것입니다. 특히 대량의 엑셀 파일에서 특정 기준에 맞는 데이터만을 신속하게 추출해야 할 때 이 기술은 빛을 발할 것입니다. 더 이상 수십, 수백 개의 행을 일일이 눈으로 확인하며 필터링하는 비효율적인 방식에 시간을 낭비하지 마세요. 파이썬과 판다스(Pandas) 라이브러리의 조합은 여러분의 데이터 처리 방식을 혁신적으로 변화시킬 것입니다.
학습 목표
- 파이썬(Python)의
pandas라이브러리를 활용하여 엑셀 파일을 효율적으로 불러오고 처리하는 방법을 이해합니다. - 엑셀 데이터프레임(DataFrame)에서 특정 조건을 만족하는 데이터를 정확하게 필터링하는 기술을 습득합니다.
- 필터링된 데이터를 새로운 엑셀 파일로 빠르고 안전하게 저장하는 방법을 익힙니다.
- 반복적인 엑셀 데이터 처리 작업을 자동화하여 업무 생산성을 향상시키는 실무 역량을 강화합니다.
- 데이터 처리 과정을 자동화함으로써 오류 발생 가능성을 줄이고, 데이터의 신뢰성을 높이는 방법을 배웁니다.
사전 준비 사항
본 실습을 원활하게 진행하기 위해 다음의 환경 설정을 미리 완료해 주시기 바랍니다. 최적의 학습 경험을 위해 권장 사양을 따르는 것을 강력히 추천합니다.
- 운영체제(OS): Windows 10/11, macOS (Ventura 이상), 또는 Linux (Ubuntu 22.04 LTS 이상)
- 통합 개발 환경(IDE): Visual Studio Code (VS Code) 최신 버전 설치 및 Python 확장팩 설치
- 파이썬(Python) 버전: Python 3.9 이상 (권장: Python 3.10 또는 3.11)
- 필수 설치 라이브러리:
pandas및openpyxl
파이썬과 VS Code가 설치되어 있다면, 터미널(Terminal) 또는 명령 프롬프트(Command Prompt)를 열어 다음 명령어를 입력하여 필요한 라이브러리를 설치합니다. 이미 설치되어 있다면 이 과정은 건너뛰셔도 됩니다.
pip install pandas openpyxl
이 명령어는 엑셀 데이터를 다루는 데 필수적인 pandas와 엑셀 파일 입출력을 지원하는 openpyxl 라이브러리를 설치합니다. 설치가 완료되면 실습을 위한 모든 준비가 끝납니다.
단계별 실습 과정
이제 본격적으로 엑셀 데이터를 자동 필터링하고 저장하는 파이썬 스크립트를 작성해 보겠습니다. 각 단계를 차근차근 따라오시면 누구나 쉽게 자동화 전문가가 될 수 있습니다.
1단계: 실습 데이터 준비
먼저, 필터링할 샘플 엑셀 파일이 필요합니다. ‘sample_data.xlsx‘라는 이름으로 새 엑셀 파일을 생성하고, 다음과 같은 데이터를 입력하여 저장해 주세요. 이 데이터는 가상의 제품 판매 기록이며, 다양한 조건으로 필터링하기에 적합합니다.
| 제품명 | 카테고리 | 판매량 | 가격 | 판매일 |
|---|---|---|---|---|
| 스마트폰 X | 전자제품 | 120 | 1200000 | 2026-01-15 |
| 노트북 Pro | 전자제품 | 80 | 1800000 | 2026-01-20 |
| 무선 이어폰 | 전자제품 | 250 | 150000 | 2026-02-01 |
| USB 허브 | 액세서리 | 300 | 35000 | 2026-02-10 |
| 기계식 키보드 | 액세서리 | 90 | 130000 | 2026-02-15 |
| 모니터 27인치 | 전자제품 | 60 | 400000 | 2026-03-05 |
| 외장하드 1TB | 저장장치 | 110 | 90000 | 2026-03-10 |
| 웹캠 FHD | 액세서리 | 180 | 70000 | 2026-03-20 |
| 태블릿 A | 전자제품 | 70 | 800000 | 2026-04-01 |
| 프린터 잉크젯 | 사무용품 | 40 | 200000 | 2026-04-15 |
| 무선 마우스 | 액세서리 | 220 | 25000 | 2026-04-20 |
| SSD 500GB | 저장장치 | 150 | 100000 | 2026-05-01 |
| 스마트 워치 | 전자제품 | 95 | 300000 | 2026-05-10 |
이 파일을 파이썬 스크립트를 저장할 동일한 폴더에 저장해 주세요. 예를 들어, ‘C:\excel_automation\‘ 폴더에 ‘sample_data.xlsx‘와 파이썬 스크립트 파일을 함께 두면 됩니다.
2단계: 개발 환경 설정 및 라이브러리 설치 확인
VS Code를 열고, 새 파일(Ctrl+N 또는 Cmd+N)을 생성한 후 ‘excel_filter.py‘와 같은 이름으로 저장합니다. 이 파일에 파이썬 코드를 작성할 것입니다. 앞서 안내해 드린 pip install pandas openpyxl 명령어를 통해 필요한 라이브러리가 제대로 설치되었는지 다시 한번 확인하는 것이 좋습니다. VS Code 터미널에서 ‘python -c "import pandas; import openpyxl; print('Libraries are installed!')"‘를 실행하여 오류가 없다면 성공적으로 설치된 것입니다.
3단계: 파이썬 스크립트 작성 – 데이터 불러오기
이제 excel_filter.py 파일에 아래 코드를 작성하여 엑셀 파일을 파이썬으로 불러오겠습니다. pandas 라이브러리는 엑셀 파일을 데이터프레임(DataFrame)이라는 구조로 쉽게 읽어올 수 있게 해줍니다.
import pandas as pd
import os
# 현재 스크립트 파일의 디렉토리 경로를 가져옵니다.
script_dir = os.path.dirname(__file__)
# 엑셀 파일 경로를 설정합니다. (스크립트와 같은 폴더에 있다고 가정)
excel_file_path = os.path.join(script_dir, 'sample_data.xlsx')
try:
# 엑셀 파일 불러오기
df = pd.read_excel(excel_file_path)
print("원본 데이터프레임:")
print(df.head()) # 데이터프레임의 상위 5개 행을 출력하여 확인
except FileNotFoundError:
print(f"오류: '{excel_file_path}' 파일을 찾을 수 없습니다. 파일 경로를 확인해주세요.")
exit()
except Exception as e:
print(f"엑셀 파일을 불러오는 중 오류가 발생했습니다: {e}")
exit()
이 코드는 pandas를 pd라는 별칭으로 임포트하고, 스크립트와 동일한 디렉토리에 있는 ‘sample_data.xlsx‘ 파일을 읽어와 df라는 데이터프레임으로 만듭니다. df.head()를 통해 데이터가 올바르게 로드되었는지 확인할 수 있습니다.
4단계: 특정 조건으로 데이터 필터링
이제 df 데이터프레임에서 원하는 조건에 맞는 데이터만을 추출하는 단계입니다. 예를 들어, ‘카테고리’가 ‘전자제품’이고 ‘판매량’이 100개 이상인 제품만 필터링해 보겠습니다. pandas는 이러한 조건 기반 필터링을 매우 직관적으로 지원합니다.
# 필터링 조건 설정
# 조건 1: '카테고리'가 '전자제품'인 경우
condition1 = df['카테고리'] == '전자제품'
# 조건 2: '판매량'이 100 이상인 경우
condition2 = df['판매량'] >= 100
# 두 가지 조건을 모두 만족하는 데이터 필터링 (AND 조건)
filtered_df = df[condition1 & condition2]
print("\n필터링된 데이터프레임:")
print(filtered_df)
위 코드에서 condition1 & condition2는 두 조건이 모두 참일 경우에만 해당 행을 선택하도록 지시합니다. 만약 ‘또는(OR)’ 조건이 필요하다면 | 연산자를 사용하면 됩니다. (예: condition1 | condition2). 이렇게 필터링된 데이터는 filtered_df라는 새로운 데이터프레임에 저장됩니다.
여러분이 원하는 조건은 얼마든지 복합적으로 만들 수 있습니다. 예를 들어, 특정 날짜 범위의 데이터만 추출하거나, 가격이 특정 범위 내에 있는 제품만 선택하는 등 다양한 시나리오에 적용 가능합니다. pandas의 유연한 인덱싱 기능을 활용하면 데이터 분석의 폭을 크게 넓힐 수 있습니다.
5단계: 필터링된 데이터 새 파일로 저장
필터링된 filtered_df를 새로운 엑셀 파일로 저장합니다. 이 과정은 to_excel() 메서드를 사용하며, index=False 옵션을 주어 데이터프레임의 인덱스가 엑셀 파일에 열로 저장되는 것을 방지합니다. 파일 이름은 ‘filtered_results_2026.xlsx‘로 지정하겠습니다.
# 저장할 새 엑셀 파일 경로 설정
output_file_path = os.path.join(script_dir, 'filtered_results_2026.xlsx')
try:
# 필터링된 데이터를 새 엑셀 파일로 저장
filtered_df.to_excel(output_file_path, index=False)
print(f"\n성공적으로 필터링된 데이터를 '{output_file_path}'에 저장했습니다.")
print("이 작업은 10초 내외로 완료되었습니다!")
except Exception as e:
print(f"엑셀 파일 저장 중 오류가 발생했습니다: {e}")
to_excel() 메서드는 openpyxl 라이브러리를 내부적으로 사용하여 엑셀 파일을 생성합니다. index=False는 pandas가 자동으로 추가하는 행 인덱스 번호를 엑셀 파일에 포함하지 않도록 하는 중요한 옵션입니다. 이 옵션을 사용하지 않으면 엑셀 파일에 불필요한 첫 번째 열이 생성될 수 있습니다.
6단계: 스크립트 실행 및 자동화 확인
이제 작성한 파이썬 스크립트를 실행하여 모든 과정이 제대로 동작하는지 확인해 볼 차례입니다. VS Code 터미널에서 다음 명령어를 입력하세요.
python excel_filter.py
스크립트가 성공적으로 실행되면, 터미널에는 원본 데이터프레임의 상위 5개 행, 필터링된 데이터프레임 전체, 그리고 최종 저장 성공 메시지가 출력될 것입니다. 스크립트가 실행된 폴더를 확인해 보면 ‘filtered_results_2026.xlsx‘라는 새로운 엑셀 파일이 생성되어 있을 것입니다.
결과 확인
생성된 ‘filtered_results_2026.xlsx‘ 파일을 엑셀 프로그램으로 열어보세요. 원본 ‘sample_data.xlsx‘ 파일에서 ‘카테고리’가 ‘전자제품’이고 ‘판매량’이 100개 이상인 제품들만 정확히 필터링되어 새로운 파일에 저장된 것을 확인할 수 있을 것입니다. 예를 들어, ‘스마트폰 X’ (판매량 120), ‘무선 이어폰’ (판매량 250) 등의 데이터가 포함되어 있을 것입니다 (참고로, ‘외장하드 1TB’는 ‘저장장치’ 카테고리이므로 필터링 조건에 따라 제외됩니다).
이 과정을 통해 여러분은 수동으로 엑셀 필터를 적용하고 복사-붙여넣기 하는 데 걸리던 시간을 단 몇 초로 단축시켰습니다. 특히 수백, 수천 개의 행을 가진 대용량 엑셀 파일의 경우, 이러한 자동화 스크립트는 작업 시간을 획기적으로 줄여줄 뿐만 아니라, 수작업 시 발생할 수 있는 휴먼 에러를 원천적으로 방지해 줍니다. 이제 여러분은 단순 반복 작업에서 벗어나 더 가치 있는 업무에 집중할 수 있게 되었습니다. 이 기본적인 필터링 및 저장 기술을 바탕으로, 데이터 분석 보고서 자동 생성, 특정 조건 만족 시 알림 발송 등 다양한 자동화 프로젝트를 시도해 볼 수 있습니다. 앞으로 여러분의 업무에 파이썬 자동화를 적극적으로 활용하여 ‘수석 IT 교육 강사’의 강의 목표처럼 항상 효율성을 추구하시길 바랍니다.