Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich aufeinanderfolgende Werte in einer Pandas DataFrame-Spalte effizient gruppieren?
In einem DataFrame stoßen Sie möglicherweise auf eine Spalte mit aufeinanderfolgenden Werten, die Sie gruppieren müssen. Betrachten Sie beispielsweise die folgende Spalte mit Werten:
[1, 1, -1, 1, -1, -1]
Um diese Werte effizient in gewünschte Gruppen zu gruppieren, wie:
[1,1] [-1] [1] [-1, -1]
Folgen Sie diesen Schritten mithilfe der Pandas-Bibliothek:
Sie können eine benutzerdefinierte Serie nutzen, um dies zu erreichen Gruppierung. Hier ist der Ansatz:
import pandas as pd # Create sample DataFrame df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) # Use ne() and cumsum() to create grouping indicator ind = df['a'].ne(df['a'].shift()).cumsum() # Group by this indicator for i, g in df.groupby(ind): # Print grouping key print(i) # Print rows in group print(g) # Convert values to list for display print(g.a.tolist())
Dieser Code gibt die gewünschten Gruppierungen und Werte 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]
Das obige ist der detaillierte Inhalt vonWie kann ich aufeinanderfolgende Werte in einer Pandas DataFrame-Spalte effizient gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!