청크 단위로 데이터 처리하기 (1)
가끔은 데이터 소스가 너무 커서 전체를 메모리에 저장하기가 비효율적일 수 있습니다. 이 연습에서는 파일의 처음 1000개 행을 한 줄씩 처리하여, 데이터셋의 한 열에 각 국가가 몇 번 나타나는지 세어서 딕셔너리로 만들겠습니다.
csv 파일 'world_dev_ind.csv'는 현재 작업 디렉터리에 준비되어 있습니다. 먼저 컨텍스트 관리자라고 하는 방식을 사용해 이 파일에 대한 연결을 열어야 합니다. 예를 들어 with open('datacamp.csv') as datacamp 명령은 csv 파일 'datacamp.csv'를 컨텍스트 관리자에서 datacamp로 바인딩합니다. 여기서 with 문이 컨텍스트 관리자이며, 파일에 대한 연결을 열 때 리소스가 효율적으로 할당되도록 보장하는 역할을 합니다.
컨텍스트 관리자에 대해 더 배우고 싶다면 DataCamp의 Importing Data in Python 과정을 참고하세요.
이 연습은 강의의 일부입니다
Python 도구 상자
연습 안내
- 컨텍스트 관리자에서
open()을 사용해 csv 파일'world_dev_ind.csv'를file로 바인딩하세요. for루프를 완성하여 루프 본문이 1000번 실행되도록 해, 파일의 처음 1000개 행만 처리하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Open a connection to the file
with ____ as ____:
# Skip the column names
file.readline()
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Process only the first 1000 rows
for j in ____:
# Split the current line into a list: line
line = file.readline().split(',')
# Get the value for the first column: first_col
first_col = line[0]
# If the column value is in the dict, increment its value
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
# Else, add to the dict and set value to 1
else:
counts_dict[first_col] = 1
# Print the resulting dictionary
print(counts_dict)