IniziaInizia gratis

Scrivere un iteratore per caricare i dati in blocchi (5)

Questa è l'ultima tappa. Hai imparato un sacco su come gestire un sacco di dati in parti più piccole. In quest'ultimo esercizio, metterai tutto il codice per elaborare i dati in un'unica funzione, così potrai riutilizzare il codice senza dover riscrivere le stesse cose un sacco di volte.

Devi definire la funzione plot_pop() che prende due argomenti: il nome del file da elaborare e il codice paese delle righe che vuoi elaborare nel set di dati.

Visto che tutto il codice che hai scritto negli esercizi precedenti sarà messo in plot_pop(), chiamare la funzione fa già questo:

  • Caricamento del file pezzo per pezzo,
  • Creazione della nuova colonna dei valori relativi alla popolazione urbana e
  • Tracciare i dati sulla popolazione urbana.

È un sacco di lavoro, ma ora questa funzione rende facile ripetere lo stesso processo per qualsiasi file e codice paese che vuoi elaborare e visualizzare!

Userai i dati da 'ind_pop_data.csv', che trovi nella tua cartella attuale. I pacchetti pandas e matplotlib.pyplot sono stati importati rispettivamente come pd e plt per il tuo utilizzo.

Quando hai finito, prenditi un attimo per dare un'occhiata ai grafici e pensare alle nuove competenze che hai imparato. Il viaggio non finisce qui! Se ti è piaciuto lavorare con questi dati, puoi continuare a esplorarli usando la versione pre-elaborata disponibile su Kaggle.

Questo esercizio fa parte del corso

Strumenti per Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci la funzione plot_pop() che ha due argomenti: il primo è filename per il file da elaborare e il secondo è country_code per il Paese da elaborare nel set di dati.
  • Chiama il numero plot_pop() per elaborare i dati relativi al codice paese 'CEB' nel file 'ind_pop_data.csv'.
  • Chiama il numero plot_pop() per elaborare i dati relativi al codice paese 'ARB' nel file 'ind_pop_data.csv'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Define plot_pop()
def ____(____, ____):

    # Initialize reader object: urb_pop_reader
    urb_pop_reader = pd.read_csv(filename, chunksize=1000)

    # Initialize empty DataFrame: data
    data = pd.DataFrame()
    
    # Iterate over each DataFrame chunk
    for df_urb_pop in urb_pop_reader:
        # Check out specific country: df_pop_ceb
        df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == country_code]

        # Zip DataFrame columns of interest: pops
        pops = zip(df_pop_ceb['Total Population'],
                    df_pop_ceb['Urban population (% of total)'])

        # Turn zip object into list: pops_list
        pops_list = list(pops)

        # Use list comprehension to create new DataFrame column 'Total Urban Population'
        df_pop_ceb['Total Urban Population'] = [int(tup[0] * tup[1] * 0.01) for tup in pops_list]
        
        # Concatenate DataFrame chunk to the end of data: data
        data = pd.concat([data, df_pop_ceb])

    # Plot urban population data
    data.plot(kind='scatter', x='Year', y='Total Urban Population')
    plt.show()

# Set the filename: fn
fn = 'ind_pop_data.csv'

# Call plot_pop for country code 'CEB'


# Call plot_pop for country code 'ARB'
Modifica ed esegui il codice