Programming/Python Code

여러개의 CSV 파일을 하나로 병합할 때

레드마티즈 2024. 11. 1. 05:11
728x90

여러개의 CSV 파일을 손쉽게 하나로 병합하는 코드를 소개해 드립니다.

 

각각의 CSV 파일에 일자별 데이터가 있다고 할 때, 1주일 또는 한달치 데이터를 분석하고 싶다면 개별 파일을 열어서 파일을 복사-붙여넣기의 방법으로 병합해야 하는 번거로움이 생깁니다.

 

이를 파이썬 코드를 활용하여 파일 선택창을 열고, 해당 폴더에 있는 파일중 하나를 선택하면 병합을 진행하는 코드입니다.

import pandas as pd
import tkinter as tk
from tkinter import filedialog
import glob
import os

# tkinter 객체 생성 및 숨김
root = tk.Tk()
root.withdraw()

# 파일 선택 창을 열어 경로 저장
file_path = filedialog.askopenfilename()
dir_path = os.path.dirname(file_path)

# 폴더 내 모든 CSV 파일 경로 가져오기
csv_files = glob.glob(os.path.join(dir_path, "*.csv"))

print("병합 작업 중입니다...")

# CSV 파일 병합
# 이상 레코드는 경고알람을 기록하고 다음 레코드로 넘어감
merged_df = pd.concat(
    (pd.read_csv(f, on_bad_lines="warn", low_memory=False) for f in csv_files),
    ignore_index=True,
)

# 병합된 DataFrame을 CSV로 저장
output_path = os.path.join(dir_path, "merged_output.csv")
merged_df.to_csv(output_path, index=False)

print('병합 완료')

 

아래와 같이 데이터가 있을때

데이터 파일들

 

3개의 데이터 파일 내용을 하나로 병합하여 merged_output.csv 파일로 저장됨을 확인하실 수 있습니다.

병합된 파일 생성

 

감사합니다.