Heim >Backend-Entwicklung >Python-Tutorial >Wie gruppiere ich aufeinanderfolgende Werte in einer Pandas DataFrame-Spalte?

Wie gruppiere ich aufeinanderfolgende Werte in einer Pandas DataFrame-Spalte?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 20:37:15525Durchsuche

How to Group Consecutive Values in a Pandas DataFrame Column?

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!

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