CommencerCommencer gratuitement

Écrire un itérateur pour charger des données par blocs (3)

Vous avez désormais l’habitude de lire et de traiter des données par blocs. Améliorons vos compétences en ajoutant une colonne à un DataFrame.

En repartant 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 générée plus tôt. Rappelez-vous que les premier et deuxième éléments de chaque tuple correspondent respectivement aux 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. De plus, comme le 2ᵉ élément est un pourcentage, vous devez diviser le résultat par 100, ou, alternativement, le multiplier par 0.01.

Vous tracerez également les données de cette nouvelle colonne afin de visualiser les données de population urbaine.

Les packages pandas et matplotlib.pyplot ont été importés sous les alias pd et plt pour votre usage.

Cet exercice fait partie du cours

Boîte à outils Python

Afficher le cours

Instructions

  • Écrivez 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 (output expression) doit être le produit des premier et deuxième éléments de chaque tuple dans pops_list. Comme le deuxième élément est un pourcentage, vous devez également multiplier le résultat par 0.01 ou le diviser par 100. De plus, notez que la colonne 'Total Urban Population' ne doit contenir que des entiers. Pour cela, veillez à convertir l’expression de sortie en entier avec int().
  • Créez un graphique de type scatter où l’axe des x correspond aux valeurs de la colonne 'Year' et l’axe des y aux 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()
Modifier et exécuter le code