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

Wie gruppiere ich aufeinanderfolgende Werte in einem Pandas DataFrame?

DDD
Freigeben: 2024-11-30 06:47:10
Original
174 Leute haben es durchsucht

How to Group Consecutive Values in a Pandas DataFrame?

Aufeinanderfolgende Werte in einem Pandas-Datenrahmen gruppieren

Bei der Datenanalyse stoßen wir häufig auf Situationen, in denen Daten geordnet sind und eine fortlaufende Gruppierung erforderlich ist Werte zusammen. Diese Aufgabe kann in Pandas mithilfe benutzerdefinierter Gruppierungstechniken gelöst werden.

Angenommen, wir haben einen DataFrame mit einer Spalte namens „a“, die die folgenden Werte enthält:

[1, 1, -1, 1, -1, -1]
Nach dem Login kopieren

Unser Ziel ist es, diese zu gruppieren Werte in aufeinanderfolgende Blöcke, etwa so:

[1,1] [-1] [1] [-1, -1]
Nach dem Login kopieren

Um dies zu erreichen, können wir Folgendes verwenden Schritte:

  1. Erstellen Sie eine benutzerdefinierte Serie: Wir erstellen eine neue Serie mit den ne- und Shift-Funktionen. Diese Serie gibt einen booleschen Wert zurück, der angibt, ob sich der aktuelle Wert vom vorherigen Wert unterscheidet.
  2. Verwenden Sie die Serie zum Gruppieren: Wir übergeben die benutzerdefinierte Serie an die Funktion „groupby“. Dadurch werden die Daten nach aufeinanderfolgenden Blöcken gruppiert.
  3. Iterieren Sie über die gruppierten Daten: Wir iterieren über die gruppierten Daten und drucken den Index, den gruppierten DataFrame und eine Liste der Werte im 'eine' Spalte für jede Gruppe.

Hier ist der Code, der diese implementiert Schritte:

import pandas as pd

df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]})
print(df)

custom_series = df['a'].ne(df['a'].shift()).cumsum()
print(custom_series)

for i, g in df.groupby(custom_series):
    print(i)
    print(g)
    print(g.a.tolist())
Nach dem Login kopieren

Dies gibt die gewünschte Gruppierung aus:

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]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie gruppiere ich aufeinanderfolgende Werte in einem Pandas DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage