Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

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

1 respuesta

Hola César, espero que estés bien

Parece que has hecho un gran trabajo en la creación de la visualización para mostrar la cantidad y distribución de pedidos por tipo de descuento. Aquí hay algunas observaciones y sugerencias para asegurarte de que estás en el camino correcto:

  1. Carga de Datos: Te aseguras de cargar correctamente el archivo tienda_libros.csv usando pandas. Esto es crucial para trabajar con los datos.

  2. Agrupación y Cálculo: Agrupaste los datos por tipo_descuento y calculaste tanto la cantidad de pedidos como las unidades vendidas. Además, calculaste el porcentaje de distribución de pedidos, lo cual es excelente para el análisis.

  3. Ordenación: Ordenaste los datos por la cantidad de pedidos, lo que ayuda a visualizar rápidamente cuál es el tipo de descuento más popular.

  4. Estilo de la Tabla: Usaste pandas Styler para aplicar estilos a la tabla, como el gradiente de color y las barras, lo que mejora la comprensión visual de los datos.

  5. Formato y Estilo: Aplicaste un formato adecuado a los números y personalizaste el estilo de la tabla, lo que hace que la presentación sea más profesional.

Si buscas mejorar aún más la visualización, podrías considerar:

  • Agregar Gráficos Adicionales: Podrías incluir gráficos de barras o pastel para complementar la tabla y proporcionar una representación visual adicional.

  • Interactividad: Si estás usando un entorno como Jupyter Notebook, podrías explorar bibliotecas como Plotly para agregar interactividad.

Tu código parece estar correctamente implementado para el desafío. Espero que estas sugerencias te sean útiles.

¡Espero haber ayudado y buenos estudios!