Pandas: so gruppieren sie nach index und führen eine berechnung durch


Mit den folgenden Methoden können Sie in Pandas nach einer oder mehreren Indexspalten gruppieren und Berechnungen durchführen:

Methode 1: Gruppieren nach einer Indexspalte

 df. groupby (' index1 ')[' numeric_column ']. max ()

Methode 2: Gruppieren Sie nach mehreren Indexspalten

 df. groupby ([' index1 ',' index2 '])[' numeric_column ']. sum ()

Methode 3: Gruppieren nach Indexspalte und regulärer Spalte

 df. groupby ([' index1 ',' numeric_column1 '])[' numeric_column2 ']. nunique ()

Die folgenden Beispiele zeigen, wie die einzelnen Methoden mit dem folgenden Pandas-DataFrame verwendet werden, der über einen MultiIndex verfügt:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
                   ' points ': [7, 7, 7, 19, 16, 9, 10, 10, 8, 8],
                   ' rebounds ': [8, 8, 8, 10, 11, 12, 13, 13, 15, 11]})

#set 'team' column to be index column
df. set_index ([' team ', ' position '], inplace= True )

#view DataFrame
df

		 rebound points
team position		
A G 7 8
        G 7 8
        G 7 8
        F 19 10
        F 16 11
B G 9 12
        G 10 13
        F 10 13
        F 8 15
        F 8 11

Methode 1: Gruppieren nach einer Indexspalte

Der folgende Code zeigt, wie Sie den Maximalwert der Spalte „Punkte“ ermitteln, gruppiert nach der Indexspalte „Position“:

 #find max value of 'points' grouped by 'position index column
df. groupby (' position ')[' points ']. max ()

position
F 19
G 10
Name: points, dtype: int64

Methode 2: Gruppieren Sie nach mehreren Indexspalten

Der folgende Code zeigt, wie man die Summe der Spalte „Punkte“ ermittelt, gruppiert nach den Indexspalten „Team“ und „Position“:

 #find max value of 'points' grouped by 'position index column
df. groupby ([' team ', ' position '])[' points ']. sum ()

team position
AF35
      G21
BF 26
      G 19
Name: points, dtype: int64

Methode 3: Gruppieren nach Indexspalte und regulärer Spalte

Der folgende Code zeigt, wie man die Anzahl der eindeutigen Werte in der Spalte „Rebounds“ ermittelt, gruppiert nach der Indexspalte „Team“ und der regulären Spalte „Punkte“:

 #find max value of 'points' grouped by 'position index column
df. groupby ([' team ', ' points '])[' rebounds ']. nunique ()

team points
At 7 1
      16 1
      19 1
B 8 2
      9 1
      10 1
Name: rebounds, dtype: int64

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So zählen Sie eindeutige Werte in Pandas
So reduzieren Sie MultiIndex in Pandas
So ändern Sie einen oder mehrere Indexwerte in Pandas
So setzen Sie einen Index in Pandas zurück

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert