반응형
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 객체를 리턴합니다.
반응형
'빅데이터 분석 > Python' 카테고리의 다른 글
[시계열 분석] 부분자기상관함수(PACF) (0) | 2022.07.20 |
---|---|
[시계열분석] 자기 상관 함수(ACF) (0) | 2022.07.20 |
[ADF test] 정상성 테스트 (0) | 2022.07.20 |
[seasonal_decompose] 시계열 데이터 분해 (0) | 2022.07.20 |