Traitement des données par morceaux (1)
Parfois, les sources de données sont si volumineuses que le stockage de l'ensemble des données en mémoire devient trop gourmand en ressources. Dans cet exercice, vous traiterez les 1000 premières lignes d'un fichier ligne par ligne, afin de créer un dictionnaire des nombres de fois où chaque pays apparaît dans une colonne de l'ensemble de données.
Le fichier csv 'world_dev_ind.csv'
se trouve dans votre répertoire actuel pour votre usage. 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 objectif est de s'assurer que les ressources sont allouées efficacement lors de l'ouverture d'une connexion à un fichier.
Si vous souhaitez en savoir plus sur les gestionnaires de contexte, reportez-vous au cours DataCamp sur l'importation de données en Python.
Cet exercice fait partie du cours
Boîte à outils Python
Instructions
- Utilisez
open()
pour lier le fichier csv'world_dev_ind.csv'
àfile
dans le gestionnaire de contexte. - Complétez la boucle
for
de manière à ce qu'elle soit itérée 1000 fois pour exécuter le corps de la boucle et traiter uniquement les 1000 premières lignes de données du fichier.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)