Problem:
Sie haben einen riesigen Datenrahmen mit über 1 Million Datensätzen, die Daten darstellen aus einem Experiment mit 60 Teilnehmern. Jeder Teilnehmer verfügt über einen eindeutigen Code, der in der Variablen „name“ des Datenrahmens gespeichert ist. Ihr Ziel ist es, den Datenrahmen in 60 kleinere Datenrahmen zu unterteilen, einen für jeden Teilnehmer.
Ursprünglicher Versuch:
Ihr ursprünglicher Ansatz, dies durch eine benutzerdefinierte Funktion namens Splitframe zu erreichen, war erfolgreich Keine Ergebnisse innerhalb einer Stunde nach der Ausführung erzielen. Die Funktion sollte den Datenrahmen durchlaufen, iterativ Zeilen an kleinere Datenrahmen anhängen und sie einer Liste hinzufügen, bis ein neuer Teilnehmer identifiziert wurde. An diesem Punkt würde ein neuer Datenrahmen für den nachfolgenden Teilnehmer erstellt.
Lösung mit Dataframe Slicing:
Anstatt den Datenrahmen iterativ aufzuteilen, können Sie einen effizienteren Ansatz mithilfe von Datenrahmen verwenden schneiden. So können Sie es machen:
import pandas as pd # Create a list of unique participant names unique_names = data['name'].unique() # Initialize a dictionary to store the split dataframes data_dict = {} # Iterate over the unique names for name in unique_names: # Create a new dataframe by slicing the original dataframe data_dict[name] = data[data['name'] == name]
Ergebnis:
Dieser Code erstellt ein Wörterbuch namens data_dict. Jeder Schlüssel im Wörterbuch stellt einen Teilnehmernamen dar, und der entsprechende Wert ist ein Pandas-Datenrahmen, der alle Daten für diesen bestimmten Teilnehmer enthält. Sie können auf den Datenrahmen jedes Teilnehmers zugreifen, indem Sie die folgende Syntax verwenden:
participant_data = data_dict['ParticipantName']
Das obige ist der detaillierte Inhalt vonWie kann ich einen großen Pandas-DataFrame basierend auf Teilnehmer-IDs effizient in kleinere DataFrames aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!