Scrivere un iteratore per caricare i dati in blocchi (3)
Ormai ti stai abituando a leggere ed elaborare i dati in blocchi. Mettiamo alla prova le tue abilità aggiungendo una colonna a un DataFrame.
Partendo dal codice dell'esercizio precedente, userai una comprensione di lista per creare i valori di una nuova colonna 'Total Urban Population' dalla lista di tuple che hai creato prima. Ricorda dall'esercizio precedente che il primo e il secondo elemento di ogni tupla sono rispettivamente i valori delle colonne 'Total Population' e 'Urban population (% of total)'. I valori in questa nuova colonna 'Total Urban Population', quindi, sono il prodotto del primo e del secondo elemento di ogni tupla. Inoltre, dato che il secondo elemento è una percentuale, devi dividere il risultato totale per 100 o, in alternativa, moltiplicarlo per 0.01.
Traccia anche i dati di questa nuova colonna per creare una visualizzazione dei dati sulla popolazione urbana.
I pacchetti pandas e matplotlib.pyplot sono stati importati rispettivamente come pd e plt per il tuo utilizzo.
Questo esercizio fa parte del corso
Strumenti per Python
Istruzioni dell'esercizio
- Scrivi una lista di comprensione per creare una lista di valori da
pops_listper la nuova colonna'Total Urban Population'. L'espressione di output dovrebbe essere il prodotto del primo e del secondo elemento in ogni tupla inpops_list. Dato che il secondo elemento è una percentuale, devi anche moltiplicare il risultato per0.01o dividerlo per100. Inoltre, tieni presente che la colonna'Total Urban Population'dovrebbe poter assumere solo valori interi. Per essere sicuri che funzioni, assicurati di convertire l'espressione di output in un numero intero conint(). - Crea un grafico a dispersione dove l'asse x ha i valori della colonna "
'Year'" e l'asse y ha i valori della colonna "'Total Urban Population'".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()