Einen Iterator schreiben, um Daten in Blöcken zu laden (3)
Du hast dich inzwischen daran gewöhnt, Daten in Blöcken zu lesen und zu verarbeiten. Lass uns deine Fähigkeiten noch ein bisschen weiter ausbauen, indem wir eine Spalte zu einem DataFrame hinzufügen.
Ausgehend vom Code der vorherigen Aufgabe wirst du eine List Comprehension verwenden, um die Werte für eine neue Spalte 'Total Urban Population' aus der Liste der Tupel zu erstellen, die du zuvor erzeugt hast. Erinnere dich aus der vorherigen Aufgabe daran, dass das erste und zweite Element eines jeden Tupels aus den Werten der Spalten 'Total Population' und 'Urban population (% of total)' besteht. Die Werte in dieser neuen Spalte 'Total Urban Population' sind also das Produkt aus dem ersten und zweiten Element in jedem Tupel. Da das zweite Element ein Prozentsatz ist, musst du außerdem das gesamte Ergebnis durch 100 teilen oder alternativ mit 0.01 multiplizieren.
Du wirst auch die Daten aus dieser neuen Spalte plotten, um eine Visualisierung der städtischen Bevölkerungsdaten zu erstellen.
Die Pakete pandas und matplotlib.pyplot wurden für dich als pd bzw. plt importiert.
Diese Übung ist Teil des Kurses
Python Toolbox
Anleitung zur Übung
- Schreibe eine List Comprehension, um eine Liste von Werten aus
pops_listfür die neue Spalte'Total Urban Population'zu erzeugen. Der Ausgabeausdruck muss das Produkt aus dem ersten und zweiten Element in jedem Tupel inpops_listsein. Da das zweite Element ein Prozentsatz ist, musst du das Ergebnis entweder mit0.01multiplizieren oder durch100dividieren. Beachte außerdem, dass die Spalte'Total Urban Population'nur Integer-Werte annehmen kann. Um dies zu gewährleisten, musst du sicherstellen, dass du den Ausgabeausdruck mitint()in einen Integer umwandelst. - Erstelle ein Streudiagramm, bei dem die x-Achse die Werte aus der Spalte
'Year'und die y-Achse die Werte aus der Spalte'Total Urban Population'sind.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Code from previous exercise
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)
df_urb_pop = next(urb_pop_reader)
df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']
pops = zip(df_pop_ceb['Total Population'],
df_pop_ceb['Urban population (% of total)'])
pops_list = list(pops)
# Use list comprehension to create new DataFrame column 'Total Urban Population'
df_pop_ceb['Total Urban Population'] = [____]
# Plot urban population data
df_pop_ceb.plot(kind=____, x=____, y=____)
plt.show()