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 de exercício
- Defina a função
count_entries()
, que tem 3 parâmetros. O primeiro parâmetro écsv_file
para o nome do arquivo, o segundo éc_size
para o tamanho do bloco e o último écolname
para o nome da coluna. - Itere sobre o arquivo em
csv_file
usando um loopfor
. Use a variável de loopchunk
e itere sobre a chamada depd.read_csv()
, passandoc_size
parachunksize
. - No loop interno, itere sobre a coluna dada por
colname
emchunk
usando 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 blocos10
e 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 preenchendo 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)