Ecrire un itérateur pour charger des données par morceaux (2)
Dans l'exercice précédent, vous avez utilisé read_csv()
pour lire des morceaux de DataFrame à partir d'un grand ensemble de données. Dans cet exercice, vous lirez un fichier en utilisant une taille de bloc DataFrame plus importante, puis vous traiterez les données du premier bloc.
Pour traiter les données, vous allez créer un autre DataFrame composé uniquement des lignes d'un pays spécifique. Vous allez ensuite fusionner deux des colonnes du nouveau DataFrame, 'Total Population'
et 'Urban population (% of total)'
. Enfin, vous créerez une liste de tuples à partir de l'objet zip, chaque tuple étant composé d'une valeur de chacune des deux colonnes mentionnées.
Vous allez utiliser les données de 'ind_pop_data.csv'
, disponibles dans votre répertoire actuel. pandas
a été importé en tant que pd
.
Cet exercice fait partie du cours
Boîte à outils Python
Instructions
- Utilisez
pd.read_csv()
pour lire le fichier dans'ind_pop_data.csv'
par morceaux de taille1000
. Affectez le résultat àurb_pop_reader
. - Récupérez le premier bloc DataFrame de l'itérable
urb_pop_reader
et affectez-le àdf_urb_pop
. - Sélectionnez uniquement les lignes de
df_urb_pop
qui ont pour'CountryCode'
'CEB'
. Pour ce faire, comparez sidf_urb_pop['CountryCode']
est égal à'CEB'
entre les crochets dedf_urb_pop[____]
. - À l'aide de
zip()
, regroupez les colonnes'Total Population'
et'Urban population (% of total)'
dedf_pop_ceb
. Attribuez 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)