빅데이터 분석/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 객체를 리턴합니다.

 

반응형