Python/Pandas

[pandas] 대용량 파일 읽기 (chunksize)

notty 2024. 8. 18. 09:47
728x90

5GB 이상의 데이터를 한꺼번에 read_csv()를 사용하여 pandas dataframe으로 읽어들이는데 MemoryError 발생

MemoryError: Unable to allocate 512. KiB for an array with shape (65536,) and data type int64

 

chunksize 파라미터를 사용하여 잘라서 가져온다

import pandas as pd

chunksize = 10000
chunk = pd.read_csv('file_path', chunksize=chunksize)

 

df는 dataframe으로 반환되는것이 아니라 iterable한 객체로 반환되어 for문으로 접근 가능함. 각 chunk는 dataframe형태임

 

for문 접근 -> 하나의 dataframe으로 concate

chunks = []
for i in chunk:
	chunks.append(i)

df = pd.concat(chunks, ignore_index=True)

 

df 확인 

 

코드

import pandas as pd

chunksize = 10000
chunk = pd.read_csv('file_path', chunksize=chunksize)

chunks = []
for i in chunk:
	chunks.append(i)
    
df = pd.concat(chunks, ignore_index=True)

 

728x90
반응형