Oft möchten Sie möglicherweise die Anzahl der Beobachtungen nach Gruppen in einem Pandas DataFrame zählen.

Glücklicherweise ist dies mit den Funktionen groupby() und size() mit der folgenden Syntax einfach zu bewerkstelligen:

df.groupby('column_name').size()

In diesem Tutorial werden einige Beispiele für die praktische Verwendung dieser Funktion anhand des folgenden Dataframes erläutert:

import numpy as np
import pandas as pd

# Pandas DataFrame erstellen
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

# DataFrame anzeigen
print(df)

  team division  rebounds
0    A        E        11
1    A        W         8
2    B        E         7
3    B        E         6
4    B        W         6
5    C        W         5
6    C        E        12

Beispiel 1: Zählen um eine Variable

Der folgende Code zeigt, wie die Gesamtzahl der Beobachtungen pro Team gezählt wird:

#Zahl der Gesamtbeobachtungen nach Variable 'Team'
df.groupby('team').size()

team
A    2
B    3
C    2
dtype: int64

Aus der Ausgabe können wir Folgendes ersehen:

  • Team A hat 2 Beobachtungen
  • Team B hat 3 Beobachtungen
  • Team C hat 2 Beobachtungen

Beachten Sie, dass der vorherige Code eine Serie erzeugt. In den meisten Fällen möchten wir mit einem DataFrame arbeiten, sodass wir stattdessen mit der Funktion reset_index() ein DataFrame erstellen können:

df.groupby('team').size().reset_index(name='obs')

team    obs
0   A   2
1   B   3
2   C   2

Beispiel 2: Zählen und Sortieren nach einer Variablen

Wir können auch die Funktion sort_values() verwenden, um die Gruppenzahlen zu sortieren.

Wir können ascending=False angeben, um die Gruppenanzahl vom größten zum kleinsten zu sortieren, oder ascending=True, um vom kleinsten zum größten zu sortieren:

df.groupby('team').size().reset_index(name='obs').sort_values(['obs'], ascending=True)

team    obs
0   A   2
2   C   2
1   B   3

Beispiel 3: Zählen nach mehreren Variablen

Wir können auch die Anzahl der Beobachtungen zählen, die in einem Pandas-DataFrame nach mehreren Variablen gruppiert sind:

# Anzahl Beobachtungen gruppiert nach Team und Division
df.groupby(['team', 'division']).size().reset_index(name='obs')

team    division  obs
0   A   E     1
1   A   W     1
2   B   E     2
3   B   W     1
4   C   E     1
5   C   W     1

Aus der Ausgabe können wir Folgendes ersehen:

  • 1 Beobachtung gehört zu Team A und Division E.
  • 1 Beobachtung gehört zu Team A und Division W.
  • 2 Beobachtungen gehören zu Team B und Division E.
  • 1 Beobachtung gehört zu Team B und Division W.
  • 1 Beobachtung gehört zu Team C und Division E.
  • 1 Beobachtung gehört zu Team C und Division W.

Zusätzliche Ressourcen

So berechnen Sie die Summe der Spalten in Pandas
So berechnen Sie den Mittelwert von Spalten in Pandas

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: