Heim >Backend-Entwicklung >Python-Tutorial >Wie kann Pandas mit großen Datensätzen umgehen, die den verfügbaren Speicher überschreiten?

Wie kann Pandas mit großen Datensätzen umgehen, die den verfügbaren Speicher überschreiten?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 19:49:11656Durchsuche

How Can Pandas Handle Large Datasets That Exceed Available Memory?

Workflows für große Datenmengen mit Pandas

Beim Umgang mit Datensätzen, die zu groß sind, um in den Speicher zu passen, sind Out-of-Core-Workflows unerlässlich. In diesem Zusammenhang untersuchen wir Best Practices für den Umgang mit großen Datenmengen mithilfe von Pandas.

Um große Datensätze effizient zu verwalten, sollten Sie den folgenden Best-Practice-Workflow in Betracht ziehen:

  1. Laden von Flatfiles in eine Datenbankstruktur auf der Festplatte:

    • Verwenden Sie HDFStore, um große Datensätze auf der Festplatte zu speichern in einem strukturierten Format.
    • Definieren Sie Gruppenzuordnungen, um Ihre Tabellen basierend auf Feldgruppierungen zu organisieren.
    • Fügen Sie Daten in Gruppen an jede Tabelle an und stellen Sie sicher, dass Datenspalten für eine schnelle Zeilenunterteilung definiert sind.
  2. Abfragen der Datenbank zum Abrufen von Daten in Pandas Data Struktur:

    • Wählen Sie bestimmte Feldgruppierungen aus, um Daten effizient abzurufen.
    • Verwenden Sie eine Funktion, um Daten aus mehreren Tabellen nahtlos auszuwählen und zu verketten.
    • Indizes erstellen auf Datenspalten für eine verbesserte Zeilenunterteilung Leistung.
  3. Aktualisieren der Datenbank nach der Manipulation von Teilen in Pandas:

    • Erstellen Sie neue Gruppen, um neue Spalten zu speichern, aus denen erstellt wurde Datenmanipulationen.
    • Stellen Sie sicher, dass data_columns in new ordnungsgemäß definiert sind Gruppen.
    • Aktivieren Sie die Komprimierung, um den Speicherplatz zu minimieren.

Beispiel:

import pandas as pd

# Group mappings for logical field grouping
group_map = {
    "A": {"fields": ["field_1", "field_2"], "dc": ["field_1"]},
    "B": {"fields": ["field_10"], "dc": ["field_10"]},
    ...
}

# Iterate over flat files and append data to tables
for file in files:
    chunk = pd.read_table(file, chunksize=50000)
    for group, info in group_map.items():
        frame = chunk.reindex(columns=info["fields"], copy=False)
        store.append(group, frame, data_columns=info["dc"])

# Retrieve specific columns
selected_columns = ["field_1", "field_10"]
group_1 = "A"
group_2 = "B"
data = store.select_as_multiple([group_1, group_2], columns=selected_columns)

Das obige ist der detaillierte Inhalt vonWie kann Pandas mit großen Datensätzen umgehen, die den verfügbaren Speicher überschreiten?. 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