Programming/Python

[Python] Pandas로 csv 파일 통합하기

w00se 2021. 8. 5. 01:08

https://pixabay.com/ko/photos/목초지-일몰-자연-811339/

데이터를 수집하고 처리하다 보면 여러 파일에 나눠져 있는 데이터를 통합할 때가 있습니다.

저는 데이터를 수집 후 여러 csv 파일에 저장한 데이터를 하나의 csv 파일로 통합할 필요가 있어서 python의 pandas 라이브러리를 이용했습니다.

 

코드

해당 코드의 실행 과정은 아래와 같습니다.

1. dir_path에 있는 파일 들 중 pattern에 해당되는 csv 파일을 하나로 통합한다.

2. 통합된 데이터 프레임에서 중복된 데이터를 제거한다.

3. 통합된 데이터를 total_file_name이라는 이름으로 저장한다.

 

import os
import re
import pandas as pd

if __name__ == "__main__":
    dir_path = "데이터가 있는 경로"
    total_file_name = r"통합 파일 이름.csv"
    pattern = re.compile("통합할 데이터 파일의 패턴")

    data_list = [file for file in os.listdir(dir_path) if file != ".DS_Store" and pattern.match(file) is not None]
    print("탐색된  데이터 파일 수: ", len(data_list))

    data = pd.read_csv(os.path.join(dir_path, data_list[0]))

    # 데이터 합치기
    for i in range(1, len(data_list)):
        file_name = data_list[i]
        cur_path = os.path.join(dir_path, file_name)
        cur_data = pd.read_csv(cur_path)
        
        data = pd.concat([data, cur_data])
        
    # 중복 데이터 제거
    data.drop_duplicates(keep = "first", ignore_index = True)

    total_file_path = os.path.join(dir_path, total_file_name)

    data.to_csv(total_file_path, index = False, encoding="utf-8-sig")

읽어 주셔서 감사합니다 :)

잘못된 부분이 있다면 댓글로 편히 알려주세요😊

'Programming > Python' 카테고리의 다른 글

[Python] venv 사용법  (0) 2021.08.03