Heim  >  Artikel  >  Backend-Entwicklung  >  Wie optimiere ich Pandas „read_csv“ mit den Optionen „dtype“ und „low_memory“?

Wie optimiere ich Pandas „read_csv“ mit den Optionen „dtype“ und „low_memory“?

Susan Sarandon
Susan SarandonOriginal
2024-11-08 18:08:02271Durchsuche

How to Optimize Pandas `read_csv` with `dtype` and `low_memory` Options?

Pandas read_csv: low_memory- und dtype-Optionen

Bei der Verwendung von pd.read_csv('somefile.csv') kann es vorkommen, dass ein DtypeWarning gibt an, dass Spalten gemischte Typen haben. Durch Angabe der dtype-Option kann dieser Fehler verhindert und die Leistung verbessert werden.

Grundlegendes zur Option „low_memory“

Die veraltete Option „low_memory“ hat eigentlich keinen Einfluss auf das Verhalten. Es hängt jedoch mit der dtype-Option zusammen, da das Erraten der dtypes für jede Spalte speicherintensiv sein kann.

Schutz vor Datenkonflikten

Wenn die letzte Zeile in Wenn Ihre Datei unerwartete Daten enthält, kann die Angabe von dtypes dazu führen, dass der Ladevorgang fehlschlägt. Wenn beispielsweise eine als Ganzzahl angegebene Spalte einen Zeichenfolgenwert wie „foobar“ enthält, wird der Ladevorgang unterbrochen.

Dtypes angeben

Um solche Fehler explizit zu vermeiden Geben Sie beim Lesen der CSV-Datei dtypes an. Durch die Verwendung der dtype-Option wird jeder Spalte der richtige Datentyp zugewiesen, was eine effiziente Analyse ermöglicht und den Speicherverbrauch reduziert.

Verfügbare dtypes

Pandas unterstützt verschiedene dtypes, darunter :

  • Numpy-Typen: float, int, bool, timedelta64[ns], datetime64[ns]
  • Pandas-Erweiterungen:

    • datetime64[ns, ] (zeitzonenbezogener Zeitstempel)
    • Kategorie (Aufzählung)
    • Zeitraum[] (Zeit Periode)
    • Spärlich (Daten mit Löchern)
    • Intervall (Indizierung)
    • Nullable-Ganzzahlen (Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64)
    • string (für string Operationen)
    • boolean (nullable bool)

Gotchas

  • Setting dtype=object schaltet die Warnung stumm, verbessert jedoch nicht die Speichereffizienz.
  • Einstellung dtype=unicode hat keine Auswirkung, da numpy Unicode als Objekt darstellt.
  • Konverter können zur Verarbeitung unerwarteter Daten verwendet werden, sind jedoch aufgrund der Einzelprozessnatur von Pandas ineffizient.

Das obige ist der detaillierte Inhalt vonWie optimiere ich Pandas „read_csv“ mit den Optionen „dtype“ und „low_memory“?. 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