Extração de informações de grandes quantidades de dados do Twitter
Você fez um ótimo trabalho ao dividir esse arquivo no exercício anterior. Agora você sabe como lidar com situações em que precisa processar um arquivo muito grande, e essa é uma habilidade muito útil.
É bom saber como processar um arquivo em partes menores e mais gerenciáveis, mas pode se tornar muito entediante ter que escrever e reescrever o mesmo código para a mesma tarefa todas as vezes. Neste exercício, você tornará seu código mais reutilizável, colocando o trabalho do último exercício em uma definição de função.
O pacote pandas foi importado como pd e o arquivo 'tweets.csv' está no diretório atual para você usar.
Este exercício faz parte do curso
Caixa de ferramentas Python
Instruções do exercício
- Defina a função
count_entries(), que tem 3 parâmetros. O primeiro parâmetro écsv_filepara o nome do arquivo, o segundo éc_sizepara o tamanho do bloco e o último écolnamepara o nome da coluna. - Itere sobre o arquivo em
csv_fileusando um loopfor. Use a variável de loopchunke itere sobre a chamada depd.read_csv(), passandoc_sizeparachunksize. - No loop interno, itere sobre a coluna dada por
colnameemchunkusando um loopfor. Use a variável de loopentry. - Chame a função
count_entries()passando para ela o nome do arquivo'tweets.csv', o tamanho dos blocos10e o nome da coluna a ser contada,'lang'. Atribua o resultado da chamada à variávelresult_counts.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)