파이썬으로 특정 파일 혹은 CSV파일 합치기
- Python/Python
- 2022. 5. 17. 13:30
전달 주요 내용
파이썬을 활용하여 폴더 내에 있는 특정 파일이나 특정 확장자 명이 포함된 파일을 불러와서 합칠 때 사용하는 방법
본 포스팅에서는 2022년도 01월 서울시 자치구별 아파트 거래 내역을 합치는 것을 예시로 듬
파일들을 살펴보면 202201_자치구코드.csv 형태로 되어 있는 것을 볼 수 있음
전제 소스코드
import pandas as pd
import os
import glob
ymd ='202201'
path = 'D:/Work_Python/아파트 매매 실거래/'
read_data = os.listdir(path)
findfile = ymd + '*.csv'
data_list = glob.glob(os.path.join(path, findfile))
# read_data = pd.read_csv(path + ymd + '_' + '*.csv', encoding='EUC-kr')
result_data = []
dataCombine = pd.DataFrame()
for files in data_list:
df = pd.read_csv(files, encoding='EUC-kr', sep=',', delimiter=None, thousands=',')
result_data.append(df)
dataCombine = pd.concat(result_data, axis=0)
dataCombine.to_csv(path + ymd +'_result.csv', encoding='EUC-kr', index = False, sep=',')
작업환경
IDE
- Pycharm 활용
라이브러리
- pandas : 1. 2. 0
- glob
- os
코드 설명
라이브러리 선언
import pandas as pd
import os
import glob
폴도 경로 설정 및 특정 파일 지정하기
ymd ='202201'
path = 'D:/Work_Python/아파트 매매 실거래/' # 경로 설정하기
read_data = os.listdir(path)
findfile = ymd+'*.csv' #202201과 * .csv 파일 찾기
data_list = glob.glob(os.path.join(path, findfile)) # 찾은 파일 목록 담기
path
: 특정 파일 혹은 CSV 파일 위치해 경로 설정하기
os.listdir('D:/Work_Python/아파트 매매 실거래/')
: 파일 경로 설정하기
ymd
: 2022년01로 시작하는 폴더만 찾기 위해서 설정
findfile : ymd+'*.csv'
: 202201+ 중간에 자치구를 찾기 위해 *를 활용, 마지막엔 .csv 확장자 설정
파일 합치고 csv 파일로 저장하기
result_data = []
dataCombine = pd.DataFrame()
for files in data_list:
df = pd.read_csv(files, encoding='EUC-kr', sep=',', delimiter=None, thousands=',')
result_data.append(df)
dataCombine = pd.concat(result_data, axis=0)
dataCombine.to_csv(path + ymd +'_result.csv', encoding='EUC-kr', index = False, sep=',')
result_data = []
: 파일 담을 리스트 설정하기
for files in data_list:
: for 문으로 찾은 파일 목록을 files에 할당하기
df = pd.read_csv(files, encoding='EUC-kr', sep=',', delimiter = None, thousands=',')
: 읽은 csv 파일을 데이터프레임의 df에 할당, sep = csv 파일에서 구분자를 선언함(csv 파일중 , tab 형태로 구분 된 것을 csv 파일에서 확인 후 지정
- csv 파일 별 다양한 인코딩이 존재(utf-8, ansi, euc-kr 등)하며 본 포스팅의 파일은 EUC-kr임
result_data.append(df)
: df 파일 하나씩 더하기 위해서 append 함수 설정
dataCombine = pd.concat(result_data, axis=0)
: 세로로 합치기 위해서 설정
- axis =0 은 새로로 합치기, asix=1은 가로로 합치기
dataCombine.to_csv(path + +ymd+'_result.csv', encoding='EUC-kr', index = False, sep',')
: 합쳐진 파일을 다시 CSV 파일로 저장하기 위한 설정으로 path
앞에서 제시한 경로
결과물
아래그림의 마지막 줄에 보면 202201_*.csv 형태의 파일이 모두 모두 합쳐진 것을 알 수 있음