Comment compter la fréquence à laquelle une valeur se produit dans Pandas Dataframe
Parfois, lorsque vous travaillez avec une DataFrame, vous pouvez vouloir compter le nombre de fois qu’une valeur apparaît dans la colonne ou, en d’autres termes, calculer la fréquence. Trois méthodes principales sont utilisées à cette fin. Examinons-les une par une.
df.groupby().count()
Series.value_counts()
df.groupby().size()
Nous utiliserons le même DataFrame
dans les prochaines sections comme suit,
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"],
}
)
Méthode df.groupby().count()
Si vous voulez calculer la fréquence sur une seule colonne, cette méthode est la meilleure.
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)
Production:
B
A
jim 4
sal 3
tom 2
A
B
a 4
b 5
Méthode Series.value_counts()
Comme chaque objet de la dataframe est une collection d’objets de la Series
, cette méthode est mieux utilisée pour l’objet pandas.Series
.
Maintenant, utilisez la fonction Series.values_counts()
.
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)
Production:
jim 4
sal 3
tom 2
Name: A, dtype: int64
b 5
a 4
Name: B, dtype: int64
Méthode df.groupby().size()
Les deux méthodes ci-dessus ne peuvent pas être utilisées pour compter la fréquence de plusieurs colonnes mais nous pouvons utiliser df.groupby().size()
pour plusieurs colonnes en même temps.
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)
Production:
A B
jim a 2
b 2
sal a 1
b 2
tom a 1
b 1
dtype: int64
Article connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme