Traitement des données par blocs (1)
Parfois, les sources de données sont si volumineuses qu'il devient trop coûteux en ressources de charger l'ensemble du jeu de données en mémoire. Dans cet exercice, vous allez traiter les 1000 premières lignes d'un fichier, une ligne à la fois, afin de créer un dictionnaire qui comptera combien de fois chaque pays apparaît dans une colonne du jeu de données.
Le fichier CSV 'world_dev_ind.csv' se trouve dans votre répertoire de travail. Pour commencer, vous devez ouvrir une connexion à ce fichier à l'aide de ce que l'on appelle un gestionnaire de contexte. Par exemple, la commande with open('datacamp.csv') as datacamp lie le fichier CSV 'datacamp.csv' à datacamp dans le gestionnaire de contexte. Ici, l'instruction with est le gestionnaire de contexte et son rôle est de veiller à une gestion efficace des ressources lors de l'ouverture d'une connexion à un fichier.
Pour en savoir plus sur les gestionnaires de contexte, consultez le cours DataCamp sur l'importation de données en Python.
Cette activité fait partie du cours
Boîte à outils Python
Instructions de l’exercice
- Utilisez
open()pour lier le fichier CSV'world_dev_ind.csv'àfiledans le gestionnaire de contexte. - Complétez la boucle
forafin qu'elle s'exécute 1000 fois pour effectuer le corps de la boucle et traiter uniquement les 1000 premières lignes du fichier.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Open a connection to the file
with ____ as ____:
# Skip the column names
file.readline()
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Process only the first 1000 rows
for j in ____:
# Split the current line into a list: line
line = file.readline().split(',')
# Get the value for the first column: first_col
first_col = line[0]
# If the column value is in the dict, increment its value
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
# Else, add to the dict and set value to 1
else:
counts_dict[first_col] = 1
# Print the resulting dictionary
print(counts_dict)