Wie man die Häufigkeit zählt, mit der ein Wert im Pandas-DataFrame auftritt
Manchmal, wenn Sie mit DataFrame arbeiten, möchten Sie vielleicht zählen, wie oft ein Wert in der Spalte vorkommt, oder mit anderen Worten, um die Häufigkeit zu berechnen. Zu diesem Zweck werden im Wesentlichen drei Methoden verwendet. Schauen wir sie uns nacheinander an.
df.groupby().count()
Serien.werte_zählungen()
df.groupby().size()
In den nächsten Abschnitten werden wir denselben DataFrame
wie folgt verwenden,
import pandas as pd
df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)
Methode df.groupby().count()
Wenn Sie die Häufigkeit über eine einzelne Spalte berechnen möchten, ist diese Methode am besten geeignet.
import pandas as pd
df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)
freq = df.groupby(["A"]).count()
print(freq)
freq = df.groupby(["B"]).count()
print(freq)
Es wird folgendes ausgegeben.
B
A
jim 4
sal 3
tom 2
A
B
a 4
b 5
Methode Series.value_counts()
Da jedes DataFrame-Objekt eine Sammlung von Series
-Objekten ist, wird diese Methode am besten für pandas.Series
-Objekte verwendet.
Verwenden Sie jetzt die Series.values_counts()
Funktion
import pandas as pd
df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)
freq = df["A"].value_counts()
print(freq)
freq = df["B"].value_counts()
print(freq)
Folgendes wird ausgegeben.
jim 4
sal 3
tom 2
Name: A, dtype: int64
b 5
a 4
Name: B, dtype: int64
Methode df.groupby().size()
Die beiden obigen Methoden können nicht verwendet werden, um die Häufigkeit mehrerer Spalten zu zählen, aber wir können df.groupby().size()
für mehrere Spalten gleichzeitig verwenden.
import pandas as pd
df = pd.DataFrame(
{
"A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
"B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
}
)
freq = df.groupby(["A", "B"]).size()
print(freq)
Das Folgende wird ausgegeben.
A B
jim a 2
b 2
sal a 1
b 2
tom a 1
b 1
dtype: int64
Verwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum