So erstellen Sie Häufigkeitstabellen in Python

Von Fabian
Kategorie: Python
Lesezeit: 4 Minuten

Eine Häufigkeitstabelle ist eine Tabelle, in der die Häufigkeiten verschiedener Kategorien angezeigt werden. Diese Art von Tabelle ist besonders nützlich, um die Verteilung von Werten in einem Dataset zu verstehen.

In diesem Tutorial wird erklärt, wie Sie Häufigkeitstabellen in Python erstellen.

Einfaktorielle Häufigkeitstabelle für eine Serie

Um die Häufigkeit einzelner Werte in einer Pandas-Serie zu ermitteln, können Sie die Funktion value_counts() verwenden:

import pandas as pd 

# Definieren einer Pandas "Series"
data = pd.Series ([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5])

# Finde Häufigkeiten für jeden Wert
data.value_counts()

3 4
1 3
4 2
5 1
2 1

Sie können das Argument sort = False hinzufügen, wenn die Datenwerte nicht nach Häufigkeit sortiert werden sollen:

 data.value_counts(sort = False )

1 3
2 1
3 4
4 2
5 1

Die Interpretation der Ausgabe ist wie folgt:

  • Der Wert „1“ tritt auf 3 – mal in der Serie.
  • Der Wert „2“ tritt 1 Mal in der Serie.
  • Der Wert „3“ tritt auf 4 – mal in der Serie.

Und so weiter.

Einfaktorielle Häufigkeitstabelle für ein DataFrame

Um die Häufigkeiten eines Pandas DataFrame zu ermitteln, können Sie die Funktion crosstab() verwenden, die die folgende Systemsteuer verwendet:

crosstab(Index, Spalten)

wobei:

  • Index: Name der Spalte, nach der gruppiert werden soll
  • Spalten: Name, der der Häufigkeitsspalte gegeben werden soll

Angenommen, wir haben ein DataFrame mit Informationen zu Buchstaben, Alter und Geschlecht von 10 verschiedenen Schülern in einer Klasse. So ermitteln Sie die Häufigkeit für jede Buchstabenklasse:

# Daten erstellen
df = pd.DataFrame ({'Note': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'D', 'D. '],
                   'Alter': [18, 18, 18, 19, 19, 20, 18, 18, 19, 19],
                   'Geschlecht': ['M', 'M', 'F', 'F', 'F', 'M', 'M', 'F', 'M', 'F']})

#Daten anzeigen
df

    Grad Alter Geschlecht
0 A 18 M.
1 A 18 M.
2 A 18 F.
3 B 19 F.
4 B 19 F.
5 B 20 M.
6 B 18 M.
7 C 18 F.
8 D 19 M.
9 D 19 F.     

#Finden Sie die Häufigkeit jeder Note
pd.crosstab(index = df['Note'], column='Anzahl')

col_0 Anzahl
Klasse  
A 3
B 4
C 1
D 2

Die Art und Weise, dies zu interpretieren, ist wie folgt:

  • 3 Schüler erhielten ein ‚A‘ in der Klasse.
  • 4 Schüler erhielten ein ‚B‘ in der Klasse.
  • 1 Schüler erhielt ein ‚C‘ in der Klasse.
  • 2 Schüler erhielten ein ‚D‘ in der Klasse.

Wir können eine ähnliche Syntax verwenden, um die Häufigkeitszählungen für andere Spalten zu ermitteln. So ermitteln Sie beispielsweise die Häufigkeit nach Alter:

pd.crosstab(index=df ['Alter'], columns='Anzahl') 

col_0 Anzahl
Alter   
18 5
19 4
20 1

Die Art und Weise, dies zu interpretieren, ist wie folgt:

  • 5 Schüler sind 18 Jahre alt.
  • 4 Schüler sind 19 Jahre alt.
  • 1 Schüler ist 20 Jahre alt.

Sie können die Häufigkeiten auch einfach als Proportionen des gesamten Datensatzes anzeigen, indem Sie durch die Summe dividieren:

# Kreuztabelle definieren
tab = pd.crosstab (index=df['Alter'], columns='Anzahl')

# Proportionen finden 
tab / tab.sum()

col_0 Anzahl
Alter   
18 0,5
19 0.4
20 0.1

Die Art und Weise, dies zu interpretieren, ist wie folgt:

  • 50% der Schüler sind 18 Jahre alt.
  • 40% der Schüler sind 19 Jahre alt.
  • 10% der Schüler sind 20 Jahre alt.

Zweifaktorielle Häufigkeitstabellen für ein DataFrame

Sie können auch eine zweifaktorielle Häufigkeitstabelle erstellen, um die Häufigkeiten für zwei verschiedene Variablen im Datensatz anzuzeigen. So erstellen Sie beispielsweise eine Zwei-Wege-Häufigkeitstabelle für die Variablen Alter und Klasse:

pd.crosstab(index=df['Alter'], columns=df['Note'])

Klasse A B C D.
Alter               
18 3 1 1 0
19 0 2 0 2
20 0 1 0 0

Die Art und Weise, dies zu interpretieren, ist wie folgt:

  • Es gibt 3 Schüler, die 18 Jahre alt sind und ein „A“ in der Klasse erhalten haben.
  • Es gibt 1 Schüler, der 18 Jahre alt ist und ein ‚B‘ in der Klasse erhalten hat.
  • Es gibt 1 Schüler, der 18 Jahre alt ist und ein „C“ in der Klasse erhalten hat.
  • Es gibt 0 Schüler, die 18 Jahre alt sind und ein ‚D‘ in der Klasse erhalten haben.

Und so weiter.

Die vollständige Dokumentation zur Funktion crosstab() finden Sie hier.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: