Cómo contar la frecuencia con la que un valor se produce en Pandas DataFrame
A veces, cuando se trabaja con dataframe, se puede querer contar cuántas veces se produce un valor en la columna o, en otras palabras, calcular la frecuencia. Principalmente se utilizan tres métodos para este propósito. Echemos un vistazo a ellos uno por uno.
df.groupby().count()
Series.cuentas_de_valor()
df.groupby().size()
Usaremos el mismo DataFrame
en las siguientes secciones como sigue,
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"],
}
)
df.groupby().count()
método
Si quieres calcular la frecuencia sobre una sola columna, entonces este método es el mejor.
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)
Se obtendrá lo siguiente.
B
A
jim 4
sal 3
tom 2
A
B
a 4
b 5
Método Series.value_counts()
Como cada objeto dataframe es una colección de objetos Series
, este método se utiliza mejor para el objeto pandas.Series
.
Ahora usa la función 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)
Lo siguiente será la salida.
jim 4
sal 3
tom 2
Name: A, dtype: int64
b 5
a 4
Name: B, dtype: int64
df.groupby().size()
método
Los dos métodos anteriores no se pueden utilizar para contar la frecuencia de múltiples columnas, pero podemos utilizar df.groupby().size()
para múltiples columnas al mismo tiempo.
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)
Se obtendrá lo siguiente.
A B
jim a 2
b 2
sal a 1
b 2
tom a 1
b 1
dtype: int64
Artículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma