groupby
Clase 18 de 24 • Curso de Manipulación y Transformación de Datos con Pandas y NumPy
Contenido del curso
NumPy
Pandas
- 11

Series y DataFrames en Pandas
12:14 min - 12

Leer archivos CSV y JSON con Pandas
08:21 min - 13

Filtrado con loc y iloc
09:25 min - 14

Agregar o eliminar datos con Pandas
11:52 min - 15

Manejo de datos nulos
08:12 min - 16

Filtrado por condiciones
05:42 min - 17

Funciones principales de Pandas
09:34 min - 18

groupby
Viendo ahora - 19

Combinando DataFrames
03:58 min - 20

Merge y Concat
14:20 min - 21

Join
05:12 min - 22
Pivot y Melt
01:51 min - 23

Apply
07:41 min
Cierre
Resumen
Permite agrupar datos en función de los demás. Es decir, hacer el análisis del DataFrame en función de una de las columnas.
- Agrupar por Author y mostrar el conteo de los datos de las demás columnas
df_books.groupby('Author').count() ---> Name User Rating Reviews Price Year Genre Abraham Verghese 2 2 2 2 2 2 Adam Gasiewski 1 1 1 1 1 1 Adam Mansbach 1 1 1 1 1 1 Adir Levy 1 1 1 1 1 1
- Agrupar por Author y mostrar la media de los datos de las demás columnas
df_books.groupby('Author').median() ---> User Rating Reviews Price Year Abraham Verghese 4.6 4866 11 2010.5 Adam Gasiewski 4.4 3113 6 2017 Adam Mansbach 4.8 9568 9 2011 Adir Levy 4.8 8170 13 2019
La columna Author, en los casos anteriores, pasa a ser el índice.
- Podemos usar loc y acceder a un dato específico del DataFrame. Agrupar por autor y mostrar la suma de los valores de las demás columnas para William Davis
df_books.groupby('Author').sum().loc['William Davis'] ---> User Rating 8.8 Reviews 14994.0 Price 12.0 Year 4025.0 Name: William Davis, dtype: float64
- Agrupar por author y mostrar la suma de los valores de las demás columnas. Colocar los índices que el DataFrame trae por defecto
df_books.groupby('Author').sum().reset_index() ---> Author User Rating Reviews Price Year 0 Abraham Verghese 9.2 9732 22 4021 1 Adam Gasiewski 4.4 3113 6 2017 2 Adam Mansbach 4.8 9568 9 2011 3 Adir Levy 4.8 8170 13 2019
- La función
agg()permite aplicar varias funciones al DataFrame una vez agrupado según una columna específica. Agrupar por Author y mostrar el mínimo y máximo de las demás columnas
df_books.groupby('Author').agg(['min','max']) ---> #muestra cada columna dividida en dos: min y max. Estas contienen los valores maximo y minimo de la columna para cada Author
- Agrupar por Author, obtener el mínimo y máximo de la columna 'Reviews' y sumar los valores de la columna 'User Rating'
df_books.groupby('Author').agg({'Reviews':['min','max'], 'User Rating':'sum'}) ---> Reviews min Reviews max User Rating Abraham Verghese 4866 4866 9.2 Adam Gasiewski 3113 3113 4.4 Adam Mansbach 9568 9568 4.8 Adir Levy 8170 8170 4.8
- Agrupar por 'Author - Year' y contar los valores de las demás columnas
df_books.groupby(['Author','Year']).count() ---> Name User Rating Reviews Price Genre ('Abraham Verghese', 2010) 1 1 1 1 1 ('Abraham Verghese', 2011) 1 1 1 1 1 ('Adam Gasiewski', 2017) 1 1 1 1 1 ('Adam Mansbach', 2011) 1 1 1 1 1
Reto
Lee este artículo sobre el método groupby y cuéntanos que otras funciones de agregación podemos usar
Contribución creada por: Edward Giraldo.