Cómo contar las observaciones por grupo en pandas

Actualizado el 17 de julio de 2024, por Luis Benites.

A menudo, puede estar interesado en contar el número de observaciones por grupo en un DataFrame de pandas.

Afortunadamente, esto es fácil de hacer usando las funciones groupby () y size () con la siguiente sintaxis:

df. groupby (' nombre_columna '). tamaño ()

Este tutorial explica varios ejemplos de cómo utilizar esta función en la práctica utilizando el siguiente marco de datos:

importar numpy como np 
importar pandas como pd

#create pandas DataFrame 
df = pd. DataFrame ({'equipo': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'división': ['E', 'W', 'E', 'E', 'W', 'W', 'E'],
                   'rebotes': [11, 8, 7, 6, 6, 5, 12]})

#display Impresión de DataFrame
 (df)

  rebotes de división de equipo
0 AE 11
1 AW 8
2 BE 7
3 BE 6
4 BW 6
5 CW 5
6 CE 12

Ejemplo 1: contar por una variable

El siguiente código muestra cómo contar el número total de observaciones por equipo:

#contar observaciones totales por variable 'equipo' 
df. groupby (' equipo '). tamaño ()

equipo
A 2
B 3
C 2
dtype: int64

De la salida podemos ver que:

  • El equipo A tiene 2 observaciones
  • El equipo B tiene 3 observaciones
  • El equipo C tiene 2 observaciones

Tenga en cuenta que el código anterior produce una serie. En la mayoría de los casos, queremos trabajar con un DataFrame, por lo que podemos usar la función reset_index () para producir un DataFrame en su lugar:

df. groupby (' equipo '). tamaño (). reset_index (nombre = ' obs ')

        equipo obs
0 A 2
1 B 3
2 C 2

Ejemplo 2: contar y ordenar por una variable

También podemos usar la función sort_values ​​() para ordenar los recuentos de grupos.

Podemos especificar ascendente = Falso para ordenar los recuentos de grupos de mayor a menor o ascendente = Verdadero para ordenar de menor a mayor:

df. groupby (' equipo '). tamaño (). reset_index (nombre = ' obs '). sort_values ([' obs '], ascendente = Verdadero )

        equipo obs
0 A 2
2 C 2
1 B 3

Ejemplo 3: contar por múltiples variables

También podemos contar la cantidad de observaciones agrupadas por múltiples variables en un DataFrame de pandas:

#contar observaciones agrupadas por equipo y división 
df. groupby ([' equipo ', ' división ']). tamaño (). reset_index (nombre = ' obs ')

        obs de la división del equipo
0 A E 1
1 A W 1
2 B E 2
3 B W 1
4 C E 1
5 C W 1

De la salida podemos ver que:

  • 1 observación pertenece al equipo A y división E
  • 1 observación pertenece al equipo A y división W
  • 2 observaciones pertenecen al equipo B y división E
  • 1 observación pertenece al equipo B y división W
  • 1 observación pertenece al equipo C y división E
  • 1 observación pertenece al equipo C y división W

Recursos adicionales

Cómo calcular la suma de columnas en pandas
Cómo calcular la media de columnas en pandas
Cómo encontrar el valor máximo de columnas en pandas

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

Una distribución uniforme es una distribución de probabilidad en la que es igualmente probable que se elija cada valor entre…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!