CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Définissez la fonction count_entries(), qui a 3 paramètres. Le premier paramètre est csv_file pour le nom du fichier, le deuxième est c_size pour la taille du bloc et le dernier est colname pour le nom de la colonne.
  • Parcourez le fichier dans le fichier csv_file à l'aide d'une boucle for. Utilisez la variable de boucle chunk et itérez sur l'appel à pd.read_csv(), en passant c_size à chunksize.
  • Dans la boucle interne, itérer sur la colonne donnée par colname dans chunk en utilisant une boucle for. Utilisez la variable de boucle entry.
  • Appelez la fonction count_entries() en lui transmettant le nom du fichier 'tweets.csv', la taille des morceaux 10, et le nom de la colonne à compter, 'lang'. Affectez le résultat de l'appel à la variable result_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)
Modifier et exécuter le code