Einen Iterator schreiben, um Daten in Blöcken zu laden (2)
In der vorherigen Aufgabe hast du read_csv()
verwendet, um DataFrame-Blöcke aus einem großen Datensatz einzulesen. In dieser Aufgabe wirst du eine Datei mit einer größeren DataFrame-Blockgröße einlesen und dann die Daten aus dem ersten Block verarbeiten.
Um die Daten zu verarbeiten, erstellst du einen weiteren DataFrame, der nur aus den Zeilen eines bestimmten Landes besteht. Dann zippst du zwei der Spalten aus dem neuen DataFrame zusammen: 'Total Population'
und 'Urban population (% of total)'
. Schließlich erstellst du eine Liste von Tupeln aus dem zip-Objekt, wobei jedes Tupel aus einem Wert aus jeder der beiden genannten Spalten besteht.
Du wirst die Daten aus 'ind_pop_data.csv'
verwenden, die in deinem aktuellen Verzeichnis verfügbar sind. pandas
wurde als pd
importiert.
Diese Übung ist Teil des Kurses
Python Toolbox
Anleitung zur Übung
- Benutze
pd.read_csv()
, um die Datei in'ind_pop_data.csv'
in Blöcken der Größe1000
einzulesen. Weise das Ergebnisurb_pop_reader
zu. - Hole den ersten DataFrame-Block aus dem Iterable
urb_pop_reader
und weise ihndf_urb_pop
zu. - Wähle nur die Zeilen von
df_urb_pop
aus, die einen'CountryCode'
von'CEB'
haben. Dazu vergleichst du, obdf_urb_pop['CountryCode']
mit'CEB'
innerhalb der eckigen Klammern indf_urb_pop[____]
gleich ist. - Nutze
zip()
, um die Spalten'Total Population'
und'Urban population (% of total)'
vondf_pop_ceb
zusammenzuzippen. Weise das resultierende Zip-Objektpops
zu.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv(____, ____)
# Get the first DataFrame chunk: df_urb_pop
df_urb_pop = next(____)
# Check out the head of the DataFrame
print(df_urb_pop.head())
# Check out specific country: df_pop_ceb
df_pop_ceb = df_urb_pop[____]
# Zip DataFrame columns of interest: pops
pops = zip(____, ____)
# Turn zip object into list: pops_list
pops_list = list(pops)
# Print pops_list
print(pops_list)