Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere ich aufeinanderfolgende identische Werte in einem Pandas-DataFrame?

Wie gruppiere ich aufeinanderfolgende identische Werte in einem Pandas-DataFrame?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-26 22:33:10777Durchsuche

How to Group Consecutive Identical Values in a 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!

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