es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo configurar el agrupamiento de Pandas en subplots de tablas?

enter image description here

Por el momento, tengo lo que está arriba.
He logrado separarlos en categorías usando groupby, pero ahora me gustaría colocarlos en un subgráfico de tablas.

## abrir archivo separado por comas y las columnas Nombre, En stock, comprometido, punto de reorden

file = pd.read_csv('Katana/InventoryItems-2022-01-06-09_10.csv',
                    usecols=['Nombre','En stock','Comprometido', 'Punto de reorden','Categoría'])

## tomar las columnas y ponerlas en una lista
Nombre = file['Nombre'].tolist()
EnStock = file['En stock'].tolist()
Comprometido = file['Comprometido'].tolist()
PuntoReorden = file['Punto de reorden'].tolist()
Categoría = file['Categoría'].tolist()

## tomar las listas y cambiarlas al tipo de dato apropiado
enStock = [int(float(i)) for i in EnStock]
comprometido = [int(float(i)) for i in Comprometido]
puntoreorden = [int(float(i)) for i in PuntoReorden]


## tener las listas con el tipo de dato correcto y organizarlas 
inventario = {'Nombre': Nombre,
            'En stock': enStock,
            'Comprometido': comprometido,
            'Punto de reorden': puntoreorden,
            'Categoría': Categoría}

## tomar la disposición del inventario y mostrarlos en una tabla
frame = DataFrame(inventario)

agrupado = frame.groupby(frame.Categoría)

df_elec = agrupado.get_group('Electrónica')
df_bedp = agrupado.get_group('Empaque de cama')
df_fil = agrupado.get_group('Filamento')
df_fast = agrupado.get_group('Elementos de sujeción')
df_kit = agrupado.get_group('Empaque de kit')
df_pap = agrupado.get_group('Papel')    
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear subgráficos de tablas para cada categoría, puedes utilizar la función subplot de la biblioteca matplotlib. Aquí tienes un ejemplo de cómo crear subgráficos de tablas para las categorías Electrónica y Embalaje de cama:

    import matplotlib.pyplot as plt
    
    fig, axs = plt.subplots(2, 1, figsize=(8, 8))
    
    axs[0].axis('off')
    axs[0].set_title('Electrónica')
    axs[0].table(cellText=df_elec.values,
                 colLabels=df_elec.columns,
                 loc='center')
    
    axs[1].axis('off')
    axs[1].set_title('Embalaje de cama')
    axs[1].table(cellText=df_bedp.values,
                 colLabels=df_bedp.columns,
                 loc='center')
    
    plt.tight_layout()
    plt.show()
    

    Esto crea una figura con dos subgráficos, uno para la categoría Electrónica y otro para la categoría Embalaje de cama. El comando axis('off') elimina los ejes de los subgráficos, mientras que la función set_title establece el título de cada subgráfico. La función table crea la tabla para cada subgráfico, donde el argumento cellText especifica los valores que se mostrarán y el argumento colLabels especifica los encabezados de las columnas. Por último, la función tight_layout ajusta el espaciado entre los subgráficos y la función show muestra la figura.

    Puedes repetir este proceso para las otras categorías (Filamento, Fijaciones, Embalaje de kits y Papel) creando subgráficos adicionales y llamando a la función table para cada uno. Alternativamente, puedes crear un bucle que itere sobre las diferentes categorías y genere los subgráficos de forma dinámica.

Comments are closed.