LoslegenKostenlos loslegen

Einen Iterator schreiben, um Daten in Blöcken zu laden (4)

In den vorherigen Aufgaben hast du nur die Daten des ersten DataFrame-Blocks verarbeitet. Diesmal fasst du die Ergebnisse über alle DataFrame-Blöcke im Datensatz zusammen. Das bedeutet, dass du jetzt den gesamten Datensatz verarbeitest. Das ist toll, denn so kannst du den gesamten großen Datensatz bearbeiten, indem du nur kleinere Teile davon bearbeitest!

Du wirst die Daten aus 'ind_pop_data.csv' verwenden, die in deinem aktuellen Verzeichnis verfügbar sind. Die Pakete pandas und matplotlib.pyplot wurden für dich als pd bzw. plt importiert.

Diese Übung ist Teil des Kurses

Python Toolbox

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere einen leeren DataFrame data mit pd.DataFrame().
  • Iteriere in der for-Schleife über urb_pop_reader, um alle DataFrame-Blöcke im Datensatz verarbeiten zu können.
  • Verkette data und df_pop_ceb, indem du eine Liste der DataFrames an pd.concat() übergibst.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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()
Code bearbeiten und ausführen