Extraire de l'information à partir d'un grand volume de données Twitter
Excellent travail pour le découpage du fichier à l'exercice précédent. Vous savez maintenant comment gérer des situations où vous devez traiter un très gros fichier, et c'est une compétence très utile !
C'est bien de pouvoir traiter un fichier en blocs plus petits et plus faciles à gérer, mais réécrire sans cesse le même code pour la même tâche peut devenir fastidieux. Dans cet exercice, vous allez rendre votre code plus réutilisable en plaçant votre travail du dernier exercice dans une définition de fonction.
Le paquet pandas a été importé sous le nom pd et le fichier 'tweets.csv' se trouve dans votre répertoire courant pour que vous puissiez l'utiliser.
Cette activité fait partie du cours
Boîte à outils Python
Instructions de l’exercice
- Définissez la fonction
count_entries()qui comporte 3 paramètres. Le premier paramètre estcsv_filepour le nom de fichier, le deuxième estc_sizepour la taille des blocs, et le dernier estcolnamepour le nom de la colonne. - Parcourez le fichier indiqué par
csv_fileau moyen d'une bouclefor. Utilisez la variable de bouclechunket itérez sur l'appel àpd.read_csv(), en passantc_sizeàchunksize. - Dans la boucle interne, itérez sur la colonne donnée par
colnamedanschunkau moyen d'une bouclefor. Utilisez la variable de boucleentry. - Appelez la fonction
count_entries()en lui passant le nom de fichier'tweets.csv', la taille des blocs10et le nom de la colonne à compter,'lang'. Affectez le résultat de l'appel à la variableresult_counts.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)