Извлечение информации из больших массивов данных Twitter
Отлично справились с разбивкой файла на чанки в предыдущем упражнении! Теперь вы знаете, как работать с ситуациями, когда нужно обработать очень большой файл — а это действительно полезный навык.
Уметь обрабатывать файл небольшими, удобными фрагментами — хорошо, но постоянно переписывать один и тот же код для одной и той же задачи быстро становится утомительным. В этом упражнении вы сделаете свой код более переиспользуемым, оформив работу из предыдущего упражнения в виде определения функции.
Пакет pandas уже импортирован как pd, а файл 'tweets.csv' находится в вашей текущей рабочей директории.
Это упражнение является частью курса
Инструментарий Python
Инструкции к упражнению
- Определите функцию
count_entries()с 3 параметрами. Первый параметр —csv_fileдля имени файла, второй —c_sizeдля размера чанка, третий —colnameдля названия столбца. - Итерируйтесь по файлу
csv_fileс помощью циклаfor. Используйте переменную циклаchunkи итерируйтесь по результату вызоваpd.read_csv(), передавc_sizeв аргументchunksize. - Во внутреннем цикле итерируйтесь по столбцу
colnameвchunkс помощью циклаfor. Используйте переменную цикла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)