Verarbeiten von Daten in Blöcken (1)
Manchmal können Datenquellen so groß sein, dass das Abspeichern des gesamten Datensatzes im Speicher zu ressourcenintensiv wird. In dieser Aufgabe verarbeitest du die ersten 1000 Zeilen einer Datei Zeile für Zeile, um ein Dictionary zu erstellen, in dem die Anzahl der Länder in einer Spalte des Datensatzes steht.
Die csv-Datei 'world_dev_ind.csv'
steht dir in deinem aktuellen Verzeichnis zur Verfügung. Um zu beginnen, musst du eine Verbindung zu dieser Datei mit einem so genannten Kontextmanager öffnen. Zum Beispiel bindet der Befehl with open('datacamp.csv') as datacamp
die csv-Datei 'datacamp.csv'
als datacamp
im Kontextmanager. Hier ist die with
-Anweisung der Kontextmanager, der dafür sorgt, dass die Ressourcen beim Öffnen einer Verbindung zu einer Datei effizient zugewiesen werden.
Wenn du mehr über Kontextmanager erfahren möchtest, schau dir den DataCamp-Kurs „Importieren von Daten in Python“ an.
Diese Übung ist Teil des Kurses
Python Toolbox
Anleitung zur Übung
- Verwende
open()
, um die csv-Datei'world_dev_ind.csv'
alsfile
im Kontextmanager zu binden. - Vervollständige die
for
-Schleife so, dass sie 1000 Mal durchläuft, um den Schleifenkörper auszuführen und nur die ersten 1000 Datenzeilen der Datei zu verarbeiten.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# Open a connection to the file
with ____ as ____:
# Skip the column names
file.readline()
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Process only the first 1000 rows
for j in ____:
# Split the current line into a list: line
line = file.readline().split(',')
# Get the value for the first column: first_col
first_col = line[0]
# If the column value is in the dict, increment its value
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
# Else, add to the dict and set value to 1
else:
counts_dict[first_col] = 1
# Print the resulting dictionary
print(counts_dict)