Saltar al contenido

Diagrama de caja con pandas groupby multiindex, para subniveles específicos de multiindex

Hacemos una revisión completa cada uno de los enunciados en nuestro espacio con la meta de mostrarte siempre información con la mayor veracidad y actualizada.

Solución:

este código:

data['2013-08-17'].boxplot(by='SPECIES')

No funcionará, ya que boxplot es una función para DataFrame y no para Series.

Mientras que en Pandas > 0.18.1 la función boxplot tiene el argumento columns que define de qué columna se toman los datos.

Entonces

data.boxplot(column='2013-08-17',by='SPECIES')

debe devolver el resultado deseado.

Un ejemplo con el conjunto de datos Iris:

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv')
fig, ax = plt.subplots(figsize=(10,8))
plt.suptitle('')
data.boxplot(column=['SepalLength'], by='Name', ax=ax)

crea:

Conjunto de datos de iris de diagrama de caja con pandas

plt.suptitle('') 

apaga los molestos subtítulos automáticos. Y, por supuesto, los argumentos de columna aceptan listas de columnas… así que

data.boxplot(column=['SepalLength', 'SepalWidth'], by='Name', ax=ax)

también funciona

Creo que lo descubrí, tal vez esto sea útil para alguien:

grouped = data['2013-08-17'].groupby(axis=1, level='SPECIES').T
grouped.boxplot()

Básicamente, la salida groupby debía transponerse para que el diagrama de caja mostrara la agrupación correcta:

ingrese la descripción de la imagen aquí

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *