Erste SchritteKostenlos loslegen

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

Dies ist die letzte Etappe. Du hast viel darüber gelernt, wie man einen großen Datensatz in Blöcken verarbeitet. In dieser letzten Aufgabe wirst du den gesamten Code für die Verarbeitung der Daten in eine einzige Funktion packen, damit du den Code wiederverwenden kannst, ohne dass du die gleichen Dinge immer wieder neu schreiben musst.

Du definierst die Funktion plot_pop(), die zwei Argumente benötigt: den Dateinamen der zu verarbeitenden Datei und den Ländercode der Zeilen, die du im Datensatz verarbeiten willst.

Da der gesamte Code, den du in den vorangegangenen Aufgaben geschrieben hast, in plot_pop() untergebracht ist, bewirkt der Aufruf der Funktion bereits Folgendes:

  • Laden der Datei, Block für Block
  • Erstellen der neuen Spalte mit den Werten der städtischen Bevölkerung
  • Plotten der Daten zur städtischen Bevölkerung

Das ist eine Menge Arbeit, aber mit der Funktion kannst du den gleichen Vorgang einfach für jede Datei und jeden Ländercode wiederholen, den du bearbeiten und visualisieren möchtest!

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 als pd bzw. plt importiert, damit du sie sofort nutzen kannst.

Wenn du fertig bist, nimm dir einen Moment Zeit, um die Plots zu betrachten und über deine neu erworbenen Fähigkeiten nachzudenken. Die Reise ist hier noch nicht zu Ende! Wenn dir die Arbeit mit diesen Daten gefallen hat, kannst du sie mit der vorverarbeiteten Version auf Kaggle weiter erforschen.

Diese Übung ist Teil des Kurses

Python Toolbox

Kurs anzeigen

Anleitung zur Übung

  • Definiere die Funktion plot_pop(), die zwei Argumente hat: Das erste ist filename für die zu verarbeitende Datei und das zweite ist country_code für das zu verarbeitende Land im Datensatz.
  • Rufe plot_pop() auf, um die Daten für den Ländercode 'CEB' in der Datei 'ind_pop_data.csv' zu verarbeiten.
  • Rufe plot_pop() auf, um die Daten für den Ländercode 'ARB' in der Datei 'ind_pop_data.csv' zu verarbeiten.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# 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'
Bearbeiten und Ausführen von Code