청크 단위로 데이터를 로드하는 제너레이터 작성 (3)
아주 좋아요! 이제 대용량 파일을 처리하는 데 활용할 수 있는 제너레이터 함수를 만들었어요.
이번에는 방금 만든 제너레이터 함수를 사용해, 앞에서처럼 World Bank 데이터셋을 처리해 보겠습니다. 파일을 한 줄씩 읽어, 데이터셋의 한 열에서 각 국가가 몇 번 나타나는지 세어 딕셔너리를 만들 거예요. 다만 이번 연습에서는 1000행만 처리하는 것이 아니라, 전체 데이터셋을 모두 처리합니다!
제너레이터 함수 read_large_file()와 csv 파일 'world_dev_ind.csv'는 미리 로드되어 있으니 바로 사용하시면 됩니다. 시작해 볼까요?
이 연습은 강의의 일부입니다
Python 도구 상자
연습 안내
- 컨텍스트 매니저에서
open()을 사용해 파일'world_dev_ind.csv'를 열고, 이를file에 바인딩하세요. for루프를 완성해read_large_file()호출에서 반환되는 제너레이터를 순회하며 파일의 모든 행을 처리하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Open a connection to the file
with ____ as ____:
# Iterate over the generator from read_large_file()
for line in ____:
row = line.split(',')
first_col = row[0]
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
else:
counts_dict[first_col] = 1
# Print
print(counts_dict)