대량 Twitter 데이터에서 정보 추출하기
이전 연습 문제에서 파일을 청크로 나누는 작업을 훌륭히 해내셨어요. 아주 큰 파일을 처리해야 하는 상황을 다룰 수 있게 되었고, 이는 정말 유용한 역량입니다!
파일을 더 작고 관리하기 쉬운 청크로 처리하는 방법을 아는 것도 중요하지만, 매번 같은 작업을 위해 같은 코드를 반복해 쓰는 일은 꽤 번거로울 수 있어요. 이번 연습에서는 지난 연습에서의 작업을 함수로 만들어 코드의 재사용성 을 높여 보겠습니다.
pandas 패키지는 pd로 임포트되어 있고, 'tweets.csv' 파일은 현재 작업 디렉터리에 준비되어 있어요.
이 연습은 강의의 일부입니다
Python 도구 상자
연습 안내
- 3개의 매개변수를 갖는 함수
count_entries()를 정의하세요. 첫 번째 매개변수csv_file은 파일 이름, 두 번째c_size는 청크 크기, 마지막colname은 열 이름입니다. for루프를 사용해csv_file에 있는 파일을 순회하세요. 루프 변수는chunk로 하고,pd.read_csv()를 호출하며chunksize에c_size를 전달해 순회하세요.- 안쪽 루프에서는
for루프를 사용해chunk에서colname으로 지정된 열을 순회하세요. 루프 변수는entry를 사용합니다. - 함수
count_entries()를 파일 이름'tweets.csv', 청크 크기10, 집계할 열 이름'lang'으로 호출하고, 반환 값을 변수result_counts에 할당하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define count_entries()
def ____():
"""Return a dictionary with counts of
occurrences as value for each key."""
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Iterate over the file chunk by chunk
for ____ in ____:
# Iterate over the column in DataFrame
for ____ in ____:
if entry in counts_dict.keys():
counts_dict[entry] += 1
else:
counts_dict[entry] = 1
# Return counts_dict
return counts_dict
# Call count_entries(): result_counts
result_counts = ____
# Print result_counts
print(result_counts)