CommencerCommencer gratuitement

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

Afficher le cours

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 de pops_list. Le deuxième élément étant un pourcentage, vous devez également multiplier le résultat par 0.01 ou le diviser par 100. 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 de int().
  • 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()
Modifier et exécuter le code