Agrupaciones en series

El método que permite agrupar una serie es pandas.Series.groupby. En su sintaxis más básica, requiere el parámetro by o el parámetro level. Veamos ambos casos y partamos de la siguiente serie para probarlos:

El método fillna

El parámetro by se usa para determinar los grupos. Puede ser una función -que se aplicará a todos los elementos del índice-, un diccionario o una serie -en cuyo caso serán los valores los que determinen los grupos.

Para ver el método groupby en funcionamiento con una función que determine los grupos, definamos una que simplemente devuelva la concatenación del texto "Grupo " y el valor que recibe: recordemos que esta función se va a aplicar sobre el índice de la serie, es decir, sobre los elementos "A", "B", etc. La función devolverá, por lo tanto, "Grupo A", "Grupo B", etc. y serán estas etiquetas las que determinen los grupos:

El método pandas.Series.groupby

El resultado de la agrupación es un objeto (SeriesGroupBy en el caso de las series) que contiene información sobre las agrupaciones pero no es visible. Lo que sí podemos hacer es aplicar a este objeto una función de agregación, por ejemplo el método mean() para obtener el valor medio de la serie original para cada uno de los grupos. En este caso tendríamos:

El método pandas.Series.groupby

Hemos comentado que el método puede también recibir como parámetro by un diccionario, en cuyo caso serán los valores los que determinen los nombres de los grupos a crear tras mapear las claves del diccionario con las etiquetas de la serie. En nuestro caso, las etiquetas de la serie son "A", "B", etc., por lo que podemos usar el siguiente diccionario para mapear estos valores con los nombres de los grupos a crear: "Producto A", "Producto B", etc. en este ejemplo:

El método pandas.Series.groupby

Ahora, si aplicamos el método con este diccionario:

El método pandas.Series.groupby

Vemos que obtenemos un resultado semejante al anterior.

Si, en lugar de hacer uso del parámetro by, hacemos uso del parámetro level, tendríamos que indicar el nivel del índice según el cual queremos realizar la agrupación (lo que tiene sentido en series con multi índice o índice jerárquico). Si indicamos como nivel el 0, sencillamente estaremos agrupando según las etiquetas de la serie:

El método pandas.Series.groupby