IniziaInizia gratis

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

Negli esercizi precedenti, hai solo lavorato sui dati del primo blocco del DataFrame. Questa volta, metterai insieme i risultati di tutti i blocchi DataFrame nel set di dati. Questo vuol dire che adesso elaborerai l'intero set di dati. È fantastico perché potrai gestire l'intero set di dati, anche se grande, lavorando solo su parti più piccole!

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.

Questo esercizio fa parte del corso

Strumenti per Python

Visualizza il corso

Istruzioni dell'esercizio

  • Inizializza un DataFrame vuoto data usando pd.DataFrame().
  • Nel ciclo " for ", fai un giro su " urb_pop_reader " per poter elaborare tutti i blocchi DataFrame nel set di dati.
  • Metti insieme data e df_pop_ceb passando una lista dei DataFrame a pd.concat().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)

# Initialize empty DataFrame: data
data = ____

# Iterate over each DataFrame chunk
for df_urb_pop in ____:

    # Check out specific country: df_pop_ceb
    df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']

    # 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 = ____

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