Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich einen großen Datenrahmen basierend auf einer eindeutigen Kennung effizient in kleinere Teilmengen aufteilen?

Wie kann ich einen großen Datenrahmen basierend auf einer eindeutigen Kennung effizient in kleinere Teilmengen aufteilen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-19 05:42:17874Durchsuche

How Can I Efficiently Split a Large DataFrame into Smaller Subsets Based on a Unique Identifier?

Aufteilen großer Datenrahmen in kleinere Teilmengen basierend auf einer eindeutigen Identifikatorspalte

Bei der Arbeit mit großen Datenmengen kann es von Vorteil sein, diese in kleinere Teilmengen aufzuteilen kleinere, überschaubare Teilmengen für eine effizientere Verarbeitung und Analyse. Dieser Artikel befasst sich mit der spezifischen Aufgabe, einen großen Datenrahmen mit Millionen von Zeilen in mehrere Datenrahmen aufzuteilen, einen für jeden eindeutigen Code, der einem Teilnehmer zugewiesen ist.

Das bereitgestellte Code-Snippet versucht, den Datenrahmen mithilfe einer for-Schleife zur Iteration aufzuteilen Gehen Sie jede Zeile durch und prüfen Sie, ob der Teilnehmercode mit dem aktuell zugewiesenen Code übereinstimmt. Obwohl dieser Ansatz konzeptionell korrekt ist, ist seine Ausführung ineffizient und kann bei großen Datensätzen zu einer übermäßigen Laufzeit führen.

Stattdessen kann eine effizientere Lösung durch Datenmanipulationstechniken erreicht werden. Indem wir die Funktion „unique()“ verwenden, um unterschiedliche Codes zu identifizieren, und dann die Methode „filter()“ anwenden, um mit jedem Code verknüpfte Zeilen zu isolieren, können wir nahtlos separate Datenrahmen erstellen.

Im verbesserten Code unten wird ein Wörterbuch initialisiert um die resultierenden Datenrahmen zu speichern, wobei jeder eindeutige Code als Wörterbuchschlüssel dient. Die filter()-Methode wird verwendet, um Zeilen basierend auf dem Teilnehmercode zu extrahieren, und die resultierenden Datenrahmen werden an das Wörterbuch angehängt:

import pandas as pd
import numpy as np

# Create a dataframe with random data and a 'Names' column
data = pd.DataFrame({'Names': ['Joe', 'John', 'Jasper', 'Jez'] * 4, 'Ob1': np.random.rand(16), 'Ob2': np.random.rand(16)})

# Extract unique participant codes
participant_codes = data.Names.unique()

# Initialize a dictionary to store dataframes
participant_dataframes = {code: pd.DataFrame() for code in participant_codes}

# Iterate through unique codes and create dataframes for each participant
for code in participant_codes:
    participant_dataframes[code] = data[data.Names == code]

# Print dictionary keys to verify participant dataframes
print(participant_dataframes.keys())

Durch die Verwendung von Datenmanipulationstechniken anstelle expliziter Schleifen bietet dieser Code mehr effiziente und skalierbare Lösung zum Aufteilen großer Datenrahmen basierend auf einer eindeutigen Kennungsspalte.

Das obige ist der detaillierte Inhalt vonWie kann ich einen großen Datenrahmen basierend auf einer eindeutigen Kennung effizient in kleinere Teilmengen aufteilen?. 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