Écrire un itérateur pour charger des données par blocs (2)
Dans l'exercice précédent, vous avez utilisé read_csv() pour lire des blocs (chunks) de DataFrame à partir d'un grand jeu de données. Dans cet exercice, vous allez lire un fichier en utilisant une taille de bloc de DataFrame plus grande, puis traiter les données du premier bloc.
Pour traiter les données, vous allez créer un autre DataFrame ne contenant que les lignes d'un pays précis. Vous allez ensuite combiner, avec zip, deux colonnes de ce nouveau DataFrame : 'Total Population' et 'Urban population (% of total)'. Enfin, vous créerez une liste de tuples à partir de l'objet zip, où chaque tuple est composé d'une valeur provenant de chacune des deux colonnes mentionnées.
Vous utiliserez les données de 'ind_pop_data.csv', disponibles dans votre répertoire courant. pandas a été importé sous le nom pd.
Cette activité fait partie du cours
Boîte à outils Python
Instructions de l’exercice
- Utilisez
pd.read_csv()pour lire le fichier'ind_pop_data.csv'par blocs de taille1000. Assignez le résultat àurb_pop_reader. - Récupérez le premier bloc (chunk) de DataFrame à partir de l'itérable
urb_pop_readeret assignez-le àdf_urb_pop. - Sélectionnez uniquement les lignes de
df_urb_popdont la valeur de'CountryCode'est'CEB'. Pour ce faire, comparez sidf_urb_pop['CountryCode']est égal à'CEB'entre les crochets dansdf_urb_pop[____]. - En utilisant
zip(), combinez les colonnes'Total Population'et'Urban population (% of total)'dedf_pop_ceb. Assignez l'objet zip obtenu àpops.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv(____, ____)
# Get the first DataFrame chunk: df_urb_pop
df_urb_pop = next(____)
# Check out the head of the DataFrame
print(df_urb_pop.head())
# Check out specific country: df_pop_ceb
df_pop_ceb = df_urb_pop[____]
# Zip DataFrame columns of interest: pops
pops = zip(____, ____)
# Turn zip object into list: pops_list
pops_list = list(pops)
# Print pops_list
print(pops_list)