Python

[파이썬] 대용량 csv 파일 부분 조회 - pandas, read_csv, nrows, chunksize

weweGH 2025. 3. 25. 09:00
반응형

대용량 csv 부분 조회
대용량 csv 부분 조회


대용량 csv 파일 부분 조회 - pandas, read_csv, nrows, chunksize


들어가며


용량이 큰 csv 파일을 읽을 때, 전체가 아닌 일부만 조회하여 불필요하게 소요되는 시간을 줄일 수 있습니다.

이 글에서 활용할 데이터는 캐글 데이터셋 중 Netflix Movies and TV Shows로 넷플릭스의 영화와 TV쇼에 관한 자료입니다. 데이터는 캐글 사이트에서 다운로드할 수 있습니다. 데이터는 출연진, 감독, 등급, 연도, 기간 등과 같은 세부 정보와 넷플릭스에서 제공되는 모든 영화 및 TV 프로그램 목록으로 구성됩니다.

반응형

먼저 필요한 패키지인 pandas를 설치하고 import 합니다.

# pip install pandas
import pandas as pd

예를 들어, netflix_titles.csv를 300줄만 읽어 df 변수에 저장한다면 다음과 같습니다. nrows 옵션에 원하는 행의 크기를 입력하면, 해당 크기만큼의 데이터를 읽을 수 있습니다. 만약 데이터가 100만 행이 넘는 데이터라면, 데이터를 다 읽는 데 시간이 많이 걸리기 때문에, nrows로 필요한 부분만큼 읽어서 확인할 수 있습니다.

df = pd.read_csv('netflix_titles.csv',nrows= 300)
print('len(df): ', len(df))
df

df nrows
df nrows


덧붙여서, pandas의 read_csv 외에도 chunksize를 활용해도 됩니다. chunksize에 원하는 행의 크기를 다음과 같이 입력하고, 데이터를 확인할 수 있습니다. 아래와 같이 shape을 통해 데이터의 개략적인 크기도 알 수 있고, 데이터만 출력하는 것도 가능합니다.

chunksize = 50
for sample in pd.read_csv('netflix_titles.csv', chunksize=chunksize):
    print(sample.shape)
    # print(sample)

chunksize 결과
chunksize 결과


용량이 큰 파일의 경우에는 위와 같이 read_csv의 nrow 옵션 혹은 chunksize를 통해 일부만 읽은 뒤, 데이터를 확인하고 데이터를 사용할지 말지 혹은 어떤 변수들을 어떻게 활용할 것인지에 대한 계획을 세우고 접근하는 것을 추천합니다.


 

반응형