Erste SchritteKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Verwende open(), um die csv-Datei 'world_dev_ind.csv' als file 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)
Bearbeiten und Ausführen von Code