Aufeinanderfolgende Werte in einem Pandas-DataFrame gruppieren
Diese Frage sucht nach einer Lösung zum Gruppieren aufeinanderfolgender Werte in einer DataFrame-Spalte. Betrachten Sie den folgenden DataFrame mit der Spalte „a“:
a 0 1 1 1 2 -1 3 1 4 -1 5 -1
Das Ziel besteht darin, diese Werte in Unterlisten zu gruppieren, die aufeinanderfolgende Sequenzen darstellen, wie unten gezeigt:
[1, 1] [-1] [1] [-1, -1]
Lösung Verwendung benutzerdefinierter Serien
Um dies zu erreichen, können wir benutzerdefinierte Serien nutzen, um aufeinanderfolgende Wertunterbrechungen zu identifizieren. Der folgende Code demonstriert diesen Ansatz:
df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) print(df) # Create a series that identifies consecutive value breaks breaks = df['a'].ne(df['a'].shift()).cumsum() print(breaks) # Group the DataFrame by the breaks series for i, g in df.groupby(breaks): print(i) print(g) print(g.a.tolist())
Die Ausgabe zeigt die aufeinanderfolgenden Wertegruppierungen nach Bedarf:
1 a 0 1 1 1 [1, 1] 2 a 2 -1 [-1] 3 a 3 1 [1] 4 a 4 -1 5 -1 [-1, -1]
Das obige ist der detaillierte Inhalt vonWie gruppiere ich aufeinanderfolgende Werte in einer Pandas DataFrame-Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!