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
반응형
'Python > Pandas' 카테고리의 다른 글
[kaggle learn geopandas] Your First Map (1) | 2024.06.04 |
---|---|
[kaggle learn pandas] Renaming and Combining (0) | 2024.05.31 |
[kaggle learn pandas] Data Types and Missing Values (0) | 2024.05.30 |
[kaggle learn pandas] Grouping and Sorting (0) | 2024.05.30 |
[kaggle learn pandas] Summary Functions and Maps (0) | 2024.05.27 |