Contare la frequenza in cui si verifica un valore in Pandas Dataframe
A volte, quando lavori con dataframe, potresti voler contare quante volte un valore si trova nella colonna o in altre parole per calcolare la frequenza. Principalmente tre metodi vengono utilizzati per questo scopo. Due di loro provengono dai metodi DataFrame.groupby()
. Vediamoli uno per uno.
df.groupby().count()
Series.value_counts()
df.groupby().size()
Useremo lo stesso DataFrame
nelle prossime sezioni come segue,
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"],
}
)
Metodo df.groupby().count()
Se vuoi calcolare la frequenza su una singola colonna, questo metodo è il migliore.
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)
Verrà emesso quanto segue.
B
A
jim 4
sal 3
tom 2
A
B
a 4
b 5
Metodo Series.value_counts()
Poiché ogni oggetto dataframe è una raccolta di oggetti Series
, questo metodo è meglio utilizzato per l’oggetto pandas.Series
.
Ora usa la funzione 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)
Verrà emesso quanto segue.
jim 4
sal 3
tom 2
Name: A, dtype: int64
b 5
a 4
Name: B, dtype: int64
Metodo df.groupby().size()
I due metodi precedenti non possono essere usati per contare la frequenza di più colonne, ma possiamo usare df.groupby().size()
per più colonne contemporaneamente.
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)
Verrà emesso quanto segue.
A B
jim a 2
b 2
sal a 1
b 2
tom a 1
b 1
dtype: int64
Articolo correlato - Pandas DataFrame
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Come convertire la colonna DataFrame in data e ora in pandas
- Converti un Float in un Integer in Pandas DataFrame
- Ordina Pandas DataFrame in base ai valori di una colonna
- Ottieni l'aggregato di Pandas Group-By e Sum