Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

08 Desafío: llegó la hora de practicar

Aprendimos a agregar una visualización gráfica a nuestra tabla mediante la función de barra. En este desafío, podemos aplicar esta función para practicar la construcción de la visualización con la adición gráfica de una manera muy similar a lo que hicimos en clase.

El desafío consiste en construir una visualización que permita informar la cantidad y distribución de pedidos por tipo de descuento. Esto permitirá que los departamentos de la empresa comprendan la demanda de productos en cada promoción.

Recuerda que, para continuar con el desafío, debes trabajar con el conjunto de datos tienda_libros.csv. El diccionario de datos que describe este conjunto está disponible en el desafío de la clase 1.

Si necesitas ayuda, una opción de solución para la actividad estará disponible en la sección "Opinión del instructor".


import pandas as pd

df = pd.read_csv('/content/tienda_libros.csv')

# Agrupamos por tipo de descuento
resumen_descuentos = df.groupby('tipo_descuento').agg(
    cantidad_pedidos=('numero_pedido', 'nunique'),
    unidades_vendidas=('unidades', 'sum')
)

# Calculamos el porcentaje de distribución de pedidos
total_pedidos = resumen_descuentos['cantidad_pedidos'].sum()
resumen_descuentos['distribución (%)'] = (resumen_descuentos['cantidad_pedidos'] / total_pedidos) * 100

# Ordenamos por cantidad de pedidos
resumen_descuentos = resumen_descuentos.sort_values(by='cantidad_pedidos', ascending=False)

visualizacion = resumen_descuentos.style\
    .format({
        'cantidad_pedidos': '{:,}', 
        'unidades_vendidas': '{:,}', 
        'distribución (%)': '{:.2f} %'
    })\
    .background_gradient(cmap='Blues', subset=['distribución (%)'])\
    .bar(subset=['unidades_vendidas'], color='#5fba7d', vmin=0)\
    .set_caption("Informe de Ventas y Distribución por Tipo de Descuento")\
    .set_table_styles([
        {'selector': 'th', 'props': [('background-color', '#2c3e50'), ('color', 'white'), ('font-family', 'Helvetica')]},
        {'selector': 'td', 'props': [('font-family', 'Helvetica'), ('padding', '8px')]},
        {'selector': 'caption', 'props': [('font-size', '18px'), ('font-weight', 'bold'), ('margin-bottom', '10px')]}
    ])

visualizacion

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad