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

Desafío: llegó la hora de practicar

Durante la clase, aprendimos a manejar muchos datos en una tabla mediante la fijación de columnas con el método set_sticky. Vamos a enfrentar muchos datos en este desafío para poder fijar el contenido aprendido.

Nuestro desafío ahora es proporcionar una visualización que permita mostrar el tiempo medio de entrega de pedidos durante los meses de los años 2013 a 2015 por cada país. Esto permitirá analizar el rendimiento del departamento de transporte de la empresa durante esos años y trazar un plan de mejoras.

Recuerda que, para continuar con el desafío, estamos trabajando 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.


import pandas as pd

df = pd.read_csv('/content/tienda_libros.csv')
df['fecha_pedido'] = pd.to_datetime(df['fecha_pedido'])
df['fecha_llegada'] = pd.to_datetime(df['fecha_llegada'])

# Cálculo del tiempo de entrega en días
df['tiempo_entrega'] = (df['fecha_llegada'] - df['fecha_pedido']).dt.days

# Filtramos años 2013 a 2015
df_filtrado = df[df['fecha_pedido'].dt.year.isin([2013, 2014, 2015])].copy()
df_filtrado['Año'] = df_filtrado['fecha_pedido'].dt.year
df_filtrado['Mes'] = df_filtrado['fecha_pedido'].dt.month

tabla_entregas = df_filtrado.pivot_table(
    index='pais',
    columns=['Año', 'Mes'],
    values='tiempo_entrega',
    aggfunc='mean'
)

# aplicamos estilo
estilo_logistica = tabla_entregas.style\
    .format('{:.1f} d')\
    .background_gradient(cmap='RdYlGn_r', axis=None)\
    .set_sticky(axis=1) \
    .set_sticky(axis=0) \
    .set_caption("Rendimiento Logístico: Tiempos de Entrega por País (2013-2015)")\
    .set_table_styles([
        {'selector': 'th', 'props': [('background-color', '#34495E'), ('color', 'white'), ('text-align', 'center')]},
        {'selector': 'caption', 'props': [('font-size', '16px'), ('font-weight', 'bold')]}
    ])

estilo_logistica

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 ya tienes un buen avance en el desafío. Has cargado los datos, calculado el tiempo de entrega y creado una tabla pivote para mostrar el tiempo medio de entrega por país, año y mes. Además, has aplicado estilos para mejorar la visualización.

Si estás buscando mejorar o verificar tu código, aquí tienes algunos puntos a considerar:

  1. Verificación de Datos: Asegúrate de que las columnas fecha_pedido y fecha_llegada en tu archivo CSV estén correctamente formateadas como fechas. Esto es crucial para que el cálculo de tiempo_entrega sea preciso.

  2. Estilos Adicionales: Puedes experimentar con diferentes mapas de colores (cmap) para ver cuál se adapta mejor a tus necesidades. Por ejemplo, coolwarm o viridis son opciones populares.

  3. Interactividad: Si deseas que tu tabla sea interactiva, podrías considerar usar bibliotecas como plotly o dash para una visualización más dinámica.

  4. Análisis Adicional: Podrías agregar una columna o fila adicional para mostrar el promedio total por país o por mes, lo que podría proporcionar una visión más completa del rendimiento.

  5. Errores Comunes: Si encuentras algún error, verifica que todos los nombres de las columnas coincidan exactamente con los del archivo CSV y que no haya valores nulos que puedan afectar los cálculos.

Espero que estas sugerencias te sean útiles y te ayuden a completar el desafío con éxito. ¡Bons estudios!