So erstellen sie häufigkeitstabellen in python
Eine Häufigkeitstabelle ist eine Tabelle, die die Häufigkeiten verschiedener Kategorien anzeigt. Diese Art von Tabelle ist besonders nützlich, um die Verteilung von Werten in einem Datensatz zu verstehen.
In diesem Tutorial wird erläutert, wie Sie Häufigkeitstabellen in Python erstellen.
Einweghäufigkeitstabelle für eine Serie
Um die Häufigkeiten einzelner Werte in einer Pandas-Reihe zu ermitteln, können Sie die Funktion value_counts() verwenden:
import pandas as pd #defineSeries data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5]) #find frequencies of each value data.value_counts() 3 4 1 3 4 2 5 1 2 1
Sie können das Argument sort=False hinzufügen, wenn Sie nicht möchten, dass die Datenwerte nach Häufigkeit sortiert werden:
data.value_counts(sort= False )
1 3
2 1
3 4
4 2
5 1
Das Ergebnis lässt sich wie folgt interpretieren:
- Der Wert „1“ kommt in der Reihe dreimal vor.
- Der Wert „2“ erscheint 1 Mal in der Serie.
- Der Wert „3“ kommt in der Serie viermal vor.
Und so weiter.
Einweg-Häufigkeitstabelle für einen DataFrame
Um die Häufigkeiten eines Pandas-DataFrames zu ermitteln, können Sie die Funktion crosstab () verwenden, die die folgende Syntax verwendet:
Kreuztabelle (Indizes, Spalten)
Gold:
- Index: Name der Spalte, nach der gruppiert werden soll
- Spalten: Name, der der Häufigkeitsspalte gegeben werden soll
Nehmen wir zum Beispiel an, wir haben einen DataFrame, der Informationen über die Note, das Alter und das Geschlecht von 10 verschiedenen Schülern einer Klasse enthält. So finden Sie die Häufigkeit jeder Buchstabennote:
#create data 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']}) #view data df Grade Age Gender 0 to 18 m 1 to 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 #find frequency of each letter grade pd.crosstab(index=df[' Grade '], columns=' count ') col_0 count Grade At 3 B4 C 1 D 2
Die Art und Weise, dies zu interpretieren, ist:
- 3 Schüler erhielten in der Klasse ein „A“.
- 4 Schüler erhielten in der Klasse die Note „B“.
- 1 Schüler erhielt in der Klasse ein „C“.
- 2 Schüler erhielten in der Klasse die Note „D“.
Wir können eine ähnliche Syntax verwenden, um Häufigkeitszahlen 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:
- 5 Schüler sind 18 Jahre alt.
- 4 Schüler sind 19 Jahre alt.
- 1 Schüler ist 20 Jahre alt.
Sie können Häufigkeiten auch einfach als Anteile des Datensatzes anzeigen, indem Sie durch die Summe dividieren:
#define crosstab tab = pd.crosstab(index=df['Age'], columns='count') #find proportions tab/tab.sum() col_0 count Age 18 0.5 19 0.4 20 0.1
Die Art und Weise, dies zu interpretieren, ist:
- 50 % der Studierenden sind 18 Jahre alt.
- 40 % der Studierenden sind 19 Jahre alt.
- 10 % der Studierenden sind 20 Jahre alt.
Bidirektionale Häufigkeitstabellen für einen DataFrame
Sie können auch eine bidirektionale Häufigkeitstabelle erstellen, um die Häufigkeiten zweier verschiedener Variablen im Datensatz anzuzeigen. So erstellen Sie beispielsweise eine bidirektionale 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:
- Es gibt 3 Schüler im Alter von 18 Jahren, die in der Klasse die Note „A“ erhalten haben.
- In der Klasse gibt es einen Schüler, der 18 Jahre alt ist und die Note „B“ erhalten hat.
- In der Klasse gibt es einen Schüler, der 18 Jahre alt ist und die Note „C“ erhalten hat.
- Es gibt 0 Schüler im Alter von 18 Jahren, die in der Klasse die Note „D“ erhalten haben.
Und so weiter.
Die vollständige Dokumentation zur Funktion crosstab() finden Sie hier .