Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich einen großen Datenrahmen basierend auf einer eindeutigen Kennung effizient in kleinere Teilmengen aufteilen?
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!