본문 바로가기
Python - 자동화

[13편] 필터링된 추출 결과 파일만 골라 하나의 통합 파일로 자동 저장하기 - "추출 결과 전용" 통합!

by ramzee 2025. 5. 13.

1. 왜 이걸 따로 해야 할까?

우리는 이미 [12편]에서 여러 파일을 조건별로 추출했습니다.

하지만 실무에서는 이렇게 추출된 파일들을...

  • 다시 하나로 모아야 보고서 작성이 편리하고,
  • 부서별 통합 리포트, 프로젝트 전체 보고서가 완성됩니다.

⚡ 여기서 중요한 점!
[3편]처럼 원본 파일을 통합하는 게 아니라, 이미 필터링된 "추출 결과 파일"만 다시 모아서 하나로 통합해야 한다는 것입니다. ---

2. 3편과 13편의 차이점은?

구분 [3편] 모든 엑셀 파일을 통합 [13편] 추출된 결과 파일만 통합
초점 원본 파일 전체 합치기
(필터링 없이 모든 데이터)
추출된 결과 파일만 골라 합치기
(필터링된 데이터만)
파일 종류 sample1.xlsx, sample2.xlsx 등 (원본) sample1_영업부_추출.xlsx, sample2_영업부_추출.xlsx 등 (결과 파일)
결과물 원본 전체를 포함한 통합 파일 필요한 데이터만 깔끔하게 모은 통합 파일
사용 예시 모든 데이터를 다 합치는 초기 작업 추출된 결과만 합쳐 최종 보고서 만들기

✅ 요약하면,
[3편]은 "무조건 다 합치기", [13편]은 "필요한 것만 정제해서 합치기"입니다.

---

3. 어떤 상황에서 유용할까?

  • 부서별로 추출된 결과를 하나로 정리해야 할 때
  • 프로젝트별로 따로 관리한 데이터를 다시 통합해야 할 때
  • 조건별 추출 결과를 최종 리포트로 만들어야 할 때

정제된 데이터만 통합하는 것은 실무 보고 품질을 높여줍니다. ---

4. 12편 보완: 부서별 데이터 추출 추가

추출 코드 예시: 영업부, 개발부, 인사부 모두 추출!

departments = ['영업부', '개발부', '인사부']

for target_department in departments:
    for file in os.listdir(input_folder):
        if file.endswith('.xlsx'):
            file_path = os.path.join(input_folder, file).replace('\\', '/')
            sheets = pd.read_excel(file_path, sheet_name=None)

            for sheet_name, df in sheets.items():
                if {'이름', '부서', '매출액'}.issubset(df.columns):
                    condition = (df['부서'] == target_department) & (df['매출액'] >= 60000)
                    filtered_df = df[condition]

                    if not filtered_df.empty:
                        save_name = f"{os.path.splitext(file)[0]}_{sheet_name}_{target_department}_추출.xlsx"
                        save_path = os.path.join(output_folder, save_name).replace('\\', '/')
                        filtered_df.to_excel(save_path, index=False)

✅ 이제 부서별로 다양한 추출 결과 파일들이 생성됩니다.

---

5. 본격 실습: 부서별 추출 결과 파일 모두 통합하기

5-1. 폴더 준비

  • 추출된 결과 파일들은 C:/Users/YourName/Desktop/조건추출결과 폴더에 모아주세요.
  • 최종 통합 파일은 C:/Users/YourName/Desktop/최종통합 폴더로 저장됩니다.

---

5-2. 코드 작성

import os
import pandas as pd

# 입력 폴더
input_folder = 'C:/Users/YourName/Desktop/조건추출결과'

# 결과 저장 폴더
output_folder = 'C:/Users/YourName/Desktop/최종통합'
os.makedirs(output_folder, exist_ok=True)

# 통합 결과 저장 리스트
df_list = []

# 추출 결과 파일만 합치기
for file in os.listdir(input_folder):
    if file.endswith('_추출.xlsx'):  # 파일명에 '_추출'이 포함된 경우만
        file_path = os.path.join(input_folder, file).replace('\\', '/')
        df = pd.read_excel(file_path)
        df_list.append(df)

# 데이터프레임 합치기
if df_list:
    final_df = pd.concat(df_list, ignore_index=True)
    save_path = os.path.join(output_folder, '최종_부서별통합결과.xlsx').replace('\\', '/')
    final_df.to_excel(save_path, index=False)
    print("✅ 최종 부서별 통합 파일 저장 완료:", save_path)
else:
    print("⚠️ 통합할 추출 결과 파일이 없습니다.")

---

5-3. 실행 결과

  • sample1_영업부_추출.xlsx
  • sample1_개발부_추출.xlsx
  • sample2_인사부_추출.xlsx
  • ... 등 모든 부서 추출 결과가 통합되어
  • 최종_부서별통합결과.xlsx로 저장됩니다.

---

6. 📢 여기서 주의사항!

  • 추출 파일명에 '_추출'이라는 규칙을 반드시 지켜야 합니다.
  • 모든 파일의 컬럼 구조는 동일해야 합니다.
  • 경로 구분자는 슬래시(/)를 사용하세요.

---

7. 요약

항목 요약
기능 부서별 추출 결과 파일만 골라 하나로 통합 저장
효과 정제된 부서별 데이터 통합 보고서 완성
준비물 Python + pandas + openpyxl
독자 초보자 OK (복붙 실습 가능)
주의사항 파일명 규칙 엄수, 컬럼 통일

 

✨ 다음편 예고

[13편] 엑셀 파일을 직접 열어 기본 차트 자동 생성하기
: 엑셀 프로그램 자체를 띄워서 엑셀 기본 차트 (막대, 꺾은선)를 자동으로 만들고 저장합니다!