Hola Les adjunto mi código y el gráfico para el desafio que plantearon, cualquier feedback lo agradeceré mucho.
amazonica = ['CAQ', 'PUT', 'VAU','MG']
andina= ['ANT','BOY', 'CAL', 'HUI', 'CUN', 'DC', 'NSA','SAN','RIS','QUI']
caribe = ['ATL', 'BOL', 'CES', 'MAG','SUC',]
orinoquia = ['ARA', 'CAS', 'MET' ,'VID' ]
pacifica = ['NAR', 'VAC','CHO','CAU']
df.loc[df['estado_cliente'].isin(amazonica), 'region'] = 'Amazónica'
df.loc[df['estado_cliente'].isin(andina), 'region'] = 'Andina'
df.loc[df['estado_cliente'].isin(caribe), 'region'] = 'Caribe'
df.loc[df['estado_cliente'].isin(orinoquia), 'region'] = 'Orinoquía'
df.loc[df['estado_cliente'].isin(pacifica), 'region'] = 'Pacífica'
def mapa_calor(df, columns, values, aggfunc='mean'):
# Creamos una pivot table
pivot_table = pd.pivot_table(df, values=values, index=columns[0], columns=columns[1], aggfunc=aggfunc)
# Creamos un mapa de calor usando seaborn
plt.figure(figsize=(10, 6))
sns.heatmap(pivot_table, cmap='viridis', annot=True, fmt=".2f", linewidths=.5)
plt.title(f"Heatmap of {values} by {columns[0]} and {columns[1]}")
plt.show()
# Llamamos a la función
mapa_calor(df[df['precio'] != -1], ['estado_cliente', 'region'], values='precio_envio', aggfunc='mean')