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.