Pandas: so verwenden sie groupby mit bin-anzahl


Sie können die folgende Syntax verwenden, um die Anzahl der Felder einer Variablen gruppiert durch eine andere Variable in Pandas zu berechnen:

 #define bins
groups = df. groupby ([' group_var ', pd. cut (df. value_var , bins)])

#display bin count by group variable
groups. size (). unstack ()

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Verwenden Sie GroupBy mit der Anzahl der Bins in Pandas

Angenommen, wir haben den folgenden Pandas-DataFrame, der die von Basketballspielern verschiedener Teams erzielten Punkte anzeigt:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                            'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [4, 7, 7, 11, 12, 15, 19, 19,
                             5, 5, 11, 12, 14, 14, 15, 15]})

#view DataFrame
print (df)

   team points
0 to 4
1 to 7
2 to 7
3 to 11
4 to 12
5 to 15
6 to 19
7 to 19
8 B 5
9 B 5
10 B 11
11 B 12
12 B 14
13 B 14
14 B 15
15 B 15

Wir können die folgende Syntax verwenden, um die Häufigkeit der Punkte für jedes Team zu berechnen, gruppiert in bestimmte Klassen:

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 15, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 15] (15, 20]
  team			
     A 3 3 2
     B 2 6 0

So interpretieren Sie das Ergebnis:

  • Insgesamt erzielten 3 Spieler von Team A zwischen 0 und 10 Punkte.
  • Insgesamt erzielten 3 Spieler von Team A zwischen 10 und 15 Punkte.
  • Insgesamt erzielten 2 Spieler von Team A zwischen 15 und 20 Punkte.

Und so weiter.

Beachten Sie, dass wir in der Funktion pd.cut() angeben können, welche Bins wir möchten.

Beispielsweise könnten wir nur zwei Bins definieren:

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 20]
  team		
     At 3 5
     B 2 6

So interpretieren Sie das Ergebnis:

  • Insgesamt erzielten 3 Spieler von Team A zwischen 0 und 10 Punkte.
  • Insgesamt erzielten 5 Spieler von Team A zwischen 10 und 20 Punkte.
  • Insgesamt erzielten 2 Spieler der Mannschaft B zwischen 0 und 10 Punkte.
  • Insgesamt erzielten 6 Spieler von Team B zwischen 10 und 20 Punkte.

Hinweis 1 : Die vollständige Dokumentation der GroupBy- Funktion finden Sie hier .

Hinweis 2 : Die vollständige Dokumentation der Schnittfunktion finden Sie hier .

Zusätzliche Ressourcen

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

Pandas: So berechnen Sie die kumulative Summe pro Gruppe
Pandas: So zählen Sie eindeutige Werte nach Gruppen
Pandas: So berechnen Sie den Modus nach Gruppe
Pandas: So berechnen Sie die Korrelation nach Gruppen

Einen Kommentar hinzufügen

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