Heim > Artikel > Backend-Entwicklung > Wie gruppiere ich aufeinanderfolgende identische Werte in einem Pandas-DataFrame?
Gruppieren aufeinanderfolgender Werte in Pandas DataFrame
In Pandas kann das Gruppieren von Daten eine entscheidende Aufgabe für die Datenanalyse und -manipulation sein. Beim Umgang mit sequentiellen Daten ist es häufig erforderlich, aufeinanderfolgende Werte zu gruppieren, die dieselben Merkmale aufweisen.
Problem:
Gegeben ist ein DataFrame mit einer Spalte, die aufeinanderfolgende Werte enthält. Gruppieren Sie diese Werte in zusammenhängende Segmente, in denen die Werte gleich bleiben.
Zum Beispiel, wenn die ursprüngliche Spalte Folgendes enthält Werte:
[1, 1, -1, 1, -1, -1]
Die gewünschte Ausgabe wäre:
[1, 1] [-1 ] [1] [-1, -1]
Lösung:
Um dies zu erreichen Beim Gruppieren bietet Pandas mithilfe der Groupby-Funktion einen flexiblen Ansatz. Es reicht jedoch nicht aus, Groupby einfach auf die Spalte selbst anzuwenden. Stattdessen müssen wir eine benutzerdefinierte Serie erstellen, die die Grenzen der Segmente identifiziert.
Der folgende Code zeigt, wie diese Lösung implementiert wird:
df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) # Create a custom Series that identifies segment boundaries boundaries = df['a'].ne(df['a'].shift()).cumsum() # Group data by the segment boundaries for i, g in df.groupby(boundaries): print(i) print(g) print(g.a.tolist())
Dieser Ansatz weist aufeinanderfolgenden Segmenten fortlaufende Nummern zu wobei die Werte unverändert bleiben. Anhand dieser Zahlen werden die Daten dann entsprechend gruppiert und jede Gruppe wird zusammen mit den entsprechenden fortlaufenden Werten ausgedruckt.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich aufeinanderfolgende identische Werte in einem Pandas-DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!