빅데이터 분석/Python
[chunksize]대용량 데이터 읽어오기
Colin Kim
2022. 7. 20. 20:07
반응형
python에서 pandas의 read_csv로 대용량 데이터를 읽어 왔을때, 고사양의 컴퓨터가 필요로 하거나 colab같은경우 연결이 끊어지기도 한다.
이럴경우 chunksize를 이용해서 일부분씩 데이터를 읽어올수 있다.
import pandas as pd
train_data_file = '/train_data.csv'
train_data = pd.DataFrame()
chunksize = 10 ** 3
for cnt, chunk in enumerate(pd.read_csv(train_data_file, chunksize=chunksize)):
train_data = pd.concat([train_data,chunk])
chunksize = 10 ** 3 은 1000을 표현하며,
python 내장함수인 enumerate를 함수를 이용하여, pandas의 read_csv함수에 chunksize라는 옵션을 주어 해당 건수만큼 데이터를 조회한 하여, pandas의 concat 함수로 1000건씩 합쳐주면, 대용량 데이터를 처리하는데 보다 효과적이다.
- enumerate함수 는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴합니다.
반응형