Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man große CSV-Dateien in Python effektiv lesen und verarbeiten?

Wie kann man große CSV-Dateien in Python effektiv lesen und verarbeiten?

DDD
DDDOriginal
2024-11-09 11:58:02533Durchsuche

How to Effectively Read and Process Large CSV Files in Python?

Große CSV-Dateien effektiv lesen

Das Lesen und Verarbeiten großer CSV-Dateien in Python kann aufgrund von Speicherbeschränkungen eine Herausforderung sein. Dieses Problem wird noch deutlicher, wenn Dateien Millionen von Zeilen und Hunderten von Spalten enthalten.

Speicherprobleme und Optimierung

Ihr aktueller Code versucht, Daten aus dem zu lesen und zu speichern CSV-Datei in eine Liste. Dieser Ansatz ist jedoch bei großen Dateien ineffizient, da der gesamte Datensatz in den Speicher geladen wird.

Um dieses Speicherproblem zu beheben, verarbeiten Sie die Daten, während Sie sie lesen. Verwenden Sie eine Generatorfunktion, die jeweils eine Zeile liefert, wie unten gezeigt:

import csv

def getstuff(filename, criterion):
    with open(filename, "rb") as csvfile:
        datareader = csv.reader(csvfile)
        yield next(datareader)  # yield the header row
        count = 0
        for row in datareader:
            if row[3] == criterion:
                yield row
                count += 1
            elif count:
                # stop when exceeding the adjacent rows of criteria
                return

Dieser aktualisierte Code liefert Zeilen für Zeile, die dem angegebenen Kriterium entsprechen. Dadurch entfällt die Notwendigkeit, den gesamten Datensatz im Speicher zu behalten.

Leistungsverbesserungen

Über die Speicheroptimierung hinaus gibt es zusätzliche Techniken zur Leistungsverbesserung:

  • Verwenden Sie einen Streaming-Parser: Erwägen Sie die Verwendung einer CSV-Bibliothek, die Streaming unterstützt, sodass Sie Daten inkrementell verarbeiten können ohne sie in den Speicher zu laden.
  • Verarbeitung parallelisieren:Wenn Ihr System dies unterstützt, erkunden Sie die Parallelverarbeitung, indem Sie die Arbeitslast auf mehrere Kerne oder Prozessoren verteilen.
  • Cache Daten, auf die häufig zugegriffen wird: Cachen Sie nach Möglichkeit den Teil des Datensatzes, auf den wiederholt zugegriffen wird, um die Notwendigkeit eines erneuten Lesens zu minimieren
  • Optimieren Sie Ihren Code: Überprüfen Sie Ihren Code auf unnötige oder ineffiziente Vorgänge, die die Verarbeitung verlangsamen könnten.

Durch die Anwendung dieser Strategien können Sie erhebliche Fortschritte erzielen Verbessern Sie die Effizienz Ihres Python-Codes für die Verarbeitung großer CSV-Dateien.

Das obige ist der detaillierte Inhalt vonWie kann man große CSV-Dateien in Python effektiv lesen und verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn