분석하는 마케터
[CSV 다루기] Python으로 파일 쪼개기/분리하기 (feat.Pandas)
TREBOR
2021. 1. 17. 18:56
파이썬 판다스 - 폴더에 있는 모든 csv 파일을 mb 단위로 쪼개기/분리하기feat.Pandas)
대량의, 크기가 큰 csv 파일을 어딘가에 업로드 해야하거나,
직접 열어서 보고 수정하면 편할 일이 있는 데 csv가 너무 길어서 쪼개기 전엔 그게 안될 때.
한 폴더에 csv 파일들을 몰아넣고 한번에 원하는 행수대로 쪼개줄 수 있다.
import pandas as pd
import os
filePath = 'C://Users//' # 폴더 주소 입력
fileAll = os.listdir(filePath)
for file in fileAll:
rowsize = sum(1 for row in (open(filePath + file, encoding='UTF-8')))
newsize = 5000000 # 쪼개고 싶은 행수 수준으로 입력. 이정도 행수는 200mb 이하임.
times = 0
for i in range(1, rowsize, newsize):
times += 1 # 폴더 내 파일을 하나씩 점검하면서, 입력한 newsize보다 넘는 행을 쪼개줌
df = pd.read_csv(filePath + file, header=None, nrows = newsize, skiprows=i)
csv_output = file[:-4] + '_' + str(times) + '.csv' # 쪼갠 수만큼 _1, _2... _n으로 꼬리를 달아서 파일명이 저장됨
df.to_csv(filePath + csv_output, index=False, header=False, mode='a', chunksize=rowsize)
간단하게 그 폴더에 있는 모든 csv 파일이 행수 기준으로 쪼개짐!!!
물론 이 코드로는... 쪼갤 필요가 없는(크기가 작은...) csv 파일도 _1 꼬리를 달아 저장이 되긴 한다.