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. Dieser Tabellentyp 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

#Series definieren
data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5])

#Finden Sie die Häufigkeiten jedes Werts
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 3-mal in der Serie auf.
  • Der Wert „2“ tritt 1-mal in der Serie auf.
  • Der Wert „3“ tritt auf 4-mal in der Serie auf.

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, columns)

wo:

  • index: Name der Spalte, nach der gruppiert werden soll
  • columns: 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({'Grade': ['A','A','A','B','B', 'B', 'B', 'C', 'D', 'D'],
                   'Age': [18, 18, 18, 19, 19, 20, 18, 18, 19, 19],
                   'Gender': ['M','M', 'F', 'F', 'F', 'M', 'M', 'F', 'M', 'F']})

#Daten anzeigen
df

    Grade   Age Gender
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 Buchstabennote
pd.crosstab(index=df['Grade'], columns='count')

col_0   count
Grade   
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['Age'], columns='count') 

col_0   count
Age 
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 sie durch die Summe dividieren:

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

# Proportionen finden 
tab/tab.sum()

col_0   count
Age 
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 Studenten sind 19 Jahre alt.
  • 10% der Schüler sind 20 Jahre alt.

Zweifaktorielle Häufigkeitstabellen für ein DataFrame

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

pd.crosstab(index=df['Age'], columns=df['Grade'])


Grade   A   B   C   D
Age             
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: