Extraction d'informations à partir de grandes quantités de données Twitter
Vous avez fait du bon travail en découpant ce fichier dans l'exercice précédent. Vous savez maintenant comment faire face à des situations où vous devez traiter un fichier très volumineux, et c'est une compétence très utile !
Il est bon de savoir comment traiter un fichier en morceaux plus petits et plus faciles à gérer, mais il peut devenir très fastidieux d'écrire et de réécrire le même code pour la même tâche à chaque fois. Dans cet exercice, vous allez rendre votre code plus réutilisable en mettant votre travail du dernier exercice dans une définition de fonction.
Le paquet pandas a été importé sous le nom de pd
et le fichier 'tweets.csv'
se trouve dans votre répertoire courant pour votre usage.
Cet exercice fait partie du cours
Boîte à outils Python
Instructions
- Définissez la fonction
count_entries()
, qui a 3 paramètres. Le premier paramètre estcsv_file
pour le nom du fichier, le deuxième estc_size
pour la taille du bloc et le dernier estcolname
pour le nom de la colonne. - Parcourez le fichier dans le fichier
csv_file
à l'aide d'une bouclefor
. Utilisez la variable de bouclechunk
et itérez sur l'appel àpd.read_csv()
, en passantc_size
àchunksize
. - Dans la boucle interne, itérer sur la colonne donnée par
colname
danschunk
en utilisant une bouclefor
. Utilisez la variable de boucleentry
. - Appelez la fonction
count_entries()
en lui transmettant le nom du fichier'tweets.csv'
, la taille des morceaux10
, et 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 cet exemple de code.
# 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)