Ecrire un itérateur pour charger des données par morceaux (3)
Vous êtes maintenant habitué à lire et à traiter les données par morceaux. Poussons vos compétences un peu plus loin en ajoutant une colonne à un DataFrame.
A partir du code de l'exercice précédent, vous allez utiliser une compréhension de liste pour créer les valeurs d'une nouvelle colonne 'Total Urban Population'
à partir de la liste de tuples que vous avez générée précédemment. Rappelez-vous de l'exercice précédent que les premier et deuxième éléments de chaque tuple sont, respectivement, les valeurs des colonnes 'Total Population'
et 'Urban population (% of total)'
. Les valeurs de cette nouvelle colonne 'Total Urban Population'
sont donc le produit du premier et du deuxième élément de chaque tuple. En outre, comme le deuxième élément est un pourcentage, vous devez diviser le résultat total par 100
, ou le multiplier par 0.01
.
Vous tracerez également les données de cette nouvelle colonne pour créer une visualisation des données relatives à la population urbaine.
Les paquets pandas
et matplotlib.pyplot
ont été importés sous les noms pd
et plt
respectivement pour votre usage.
Cet exercice fait partie du cours
Boîte à outils Python
Instructions
- Ecrivez une compréhension de liste pour générer une liste de valeurs à partir de
pops_list
pour la nouvelle colonne'Total Urban Population'
. L'expression de sortie doit être le produit du premier et du deuxième élément de chaque tuple depops_list
. Le deuxième élément étant un pourcentage, vous devez également multiplier le résultat par0.01
ou le diviser par100
. En outre, notez que la colonne'Total Urban Population'
ne peut prendre que des valeurs entières. Pour vous en assurer, veillez à transformer l'expression de sortie en un entier à l'aide deint()
. - Créez un diagramme de dispersion dont l'axe des x est constitué des valeurs de la colonne
'Year'
et l'axe des y des valeurs de la colonne'Total Urban Population'
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Code from previous exercise
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)
df_urb_pop = next(urb_pop_reader)
df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']
pops = zip(df_pop_ceb['Total Population'],
df_pop_ceb['Urban population (% of total)'])
pops_list = list(pops)
# Use list comprehension to create new DataFrame column 'Total Urban Population'
df_pop_ceb['Total Urban Population'] = [____]
# Plot urban population data
df_pop_ceb.plot(kind=____, x=____, y=____)
plt.show()