Kom igångKom igång gratis

Skriva en iterator för att läsa in data i delar (4)

I de tidigare övningarna har du bara bearbetat data från den första DataFrame-delen. Den här gången ska du aggregera resultaten över alla DataFrame-delar i datamängden. Det innebär att du nu bearbetar hela datamängden. Det smarta är att du kan hantera hela den stora datamängden genom att bara arbeta med mindre bitar av den!

Du ska använda data från 'ind_pop_data.csv', som finns i din aktuella katalog. Paketen pandas och matplotlib.pyplot har importerats som pd respektive plt.

Den här övningen är en del av kursen

Python Toolbox

Visa kurs

Övningsinstruktioner

  • Initiera en tom DataFrame data med pd.DataFrame().
  • I for-loopen, iterera över urb_pop_reader för att bearbeta alla DataFrame-delar i datamängden.
  • Sammanfoga data och df_pop_ceb genom att skicka en lista med DataFrames till pd.concat().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod