Pandas Series Series.value_counts() Función

Suraj Joshi 30 enero 2023
  1. Sintaxis de pandas.Series.value_counts():
  2. Códigos de ejemplo: Cuenta la ocurrencia de elementos únicos en la serie de Pandas usando el método Series.value_counts()
  3. Códigos de ejemplo: Ponga normalize=True en Series.value_counts() Método para obtener las frecuencias relativas de los elementos
  4. Códigos de ejemplo: Poner ascending=True en Series.value_counts() Método para clasificar elementos basados en el valor de la frecuencia en orden ascendente
  5. Códigos de ejemplo: Establecer el parámetro bins en Series.value_counts() Método para obtener el conteo de valores que yacen en los recipientes semi-abiertos
  6. Códigos de ejemplo: Establecer dropna=False en Series.value_counts() Método para contar NaN
Pandas Series Series.value_counts() Función

El método pandas.Series.value_counts() cuenta el número de ocurrencias de cada elemento único en la Series.

Sintaxis de pandas.Series.value_counts():

Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)

Parámetros

normalize Booleana. Frecuencias relativas de los valores únicos(normalizar=True) o frecuencias absolutas de los valores únicos(normalizar=False).
sort Booleana. Ordena los elementos en base a las frecuencias(sort=True) o deja el objeto Serie sin ordenar(sort=False)
ascending Booleana. Ordena los valores en orden ascendente (ascending=True) o descendente (ascending=False).
bins Entero. Número de particiones en las que se divide el rango de valores del objeto Series.
dropna Booleana. Incluir los recuentos de NaN (dropna=False) o excluir los recuentos de NaN (dropna=False).

Retorna

Devuelve un objeto Series compuesto por el recuento de valores únicos.

Códigos de ejemplo: Cuenta la ocurrencia de elementos únicos en la serie de Pandas usando el método Series.value_counts()

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

absolute_counts=df["X"].value_counts()

print("Frequencies of elements of X column:")
print(absolute_counts)

Resultado:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies of elements of X column:
3.0    2
2.0    1
1.0    1
Name: X, dtype: int64 

El objeto ʻabsolute_counts Series da el recuento de cada elemento único de la columna X usando el método Series.value_counts().

Series.value_counts() no cuenta NaN por defecto. Introduciremos cómo contarlo en las siguientes secciones.

Códigos de ejemplo: Ponga normalize=True en Series.value_counts() Método para obtener las frecuencias relativas de los elementos

Si establecemos normalizar=True en el método Series.value_counts(), obtenemos frecuencias relativas de todos los elementos únicos en el objeto Series.

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

relative_counts=df["X"].value_counts(normalize=True)

print("Relative Frequencies of elements of X column:")
print(relative_counts)

Resultado:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies of elements of X column:
3.0    0.50
2.0    0.25
1.0    0.25
Name: X, dtype: float64

El objeto relative_counts Series da las frecuencias relativas de cada elemento único de la columna X.

Las frecuencias relativas se obtienen dividiendo todas las frecuencias absolutas por la suma de las frecuencias absolutas.

Códigos de ejemplo: Poner ascending=True en Series.value_counts() Método para clasificar elementos basados en el valor de la frecuencia en orden ascendente

Si establecemos ascending=True en el método Series.value_counts(), obtenemos el objeto Series con sus elementos ordenados en base a los valores de frecuencia en orden ascendente.

Por defecto, los valores del objeto Series devueltos por el método Series.value_counts() se ordenan en orden descendente basado en los valores de frecuencia.

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

sorted_counts=df["X"].value_counts(ascending=True)
print("Frequencies of elements of X column:")
print(sorted_counts)

Resultado:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies of elements of X column:
1.0    1
2.0    1
3.0    2
Name: X, dtype: int64

Da los recuentos de cada objeto único en la columna X con los valores de frecuencia ordenados en orden ascendente.

Códigos de ejemplo: Establecer el parámetro bins en Series.value_counts() Método para obtener el conteo de valores que yacen en los recipientes semi-abiertos

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3, 4, 5],
                   'Y': [4, np.nan, 8, np.nan, 3, 2, 1]})
print("DataFrame:")
print(df)

counts=df["X"].value_counts(bins=3)
print("Frequencies:")
print(counts)

Resultado:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
5  4.0  2.0
6  5.0  1.0
Frequencies:
(3.667, 5.0]      2
(2.333, 3.667]    2
(0.995, 2.333]    2
Name: X, dtype: int64

Divide el rango de valores de la Series, es decir, la columna X en tres partes y devuelve los recuentos de los valores que se encuentran en cada recipiente medio abierto.

Códigos de ejemplo: Establecer dropna=False en Series.value_counts() Método para contar NaN

Si ponemos dropna=False en el método Series.value_counts(), también obtenemos recuentos de valores NaN.

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

counts=df["Y"].value_counts(dropna=False)

print("Frequencies:")
print(counts)

Resultado:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies:
NaN    2
3.0    1
8.0    1
4.0    1
Name: Y, dtype: int64

Da el recuento de cada elemento en la columna Y de DataFrame con el recuento de valores NaN.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas Series