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_list
für die neue Spalte'Total Urban Population'
zu erzeugen. Der Ausgabeausdruck muss das Produkt aus dem ersten und zweiten Element in jedem Tupel inpops_list
sein. Da das zweite Element ein Prozentsatz ist, musst du das Ergebnis entweder mit0.01
multiplizieren oder durch100
dividieren. 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 zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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()