É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 de DataFrame à partir d’un grand jeu de données. Dans cet exercice, vous allez lire un fichier avec une taille de bloc 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 spécifique. Vous combinerez ensuite deux colonnes de ce nouveau DataFrame avec zip() : '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 de chacune des deux colonnes mentionnées.
Vous allez utiliser les données de 'ind_pop_data.csv', disponible dans votre répertoire courant. pandas a été importé sous le nom pd.
Cet exercice fait partie du cours
Boîte à outils Python
Instructions
- Utilisez
pd.read_csv()pour lire le fichier'ind_pop_data.csv'par blocs de taille1000. Affectez le résultat àurb_pop_reader. - Récupérez le premier bloc de DataFrame de l’itérable
urb_pop_readeret affectez-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 crochets dansdf_urb_pop[____]. - En utilisant
zip(), combinez les colonnes'Total Population'et'Urban population (% of total)'dedf_pop_ceb. Affectez l’objet zip résultant àpops.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)