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

Desafío: generando visualizaciones con respecto a la localización

Prompt 1

"Teniendo nuestro dataframe df_consolidada construye un gráfico, utilizando Seaborn, siguiendo la siguiente solicitud: Mostrar la facturación de las ventas por región (region), ten presente que la facturación se calcula multiplicando el valor unitario (precio_unitario) por la cantidad comprada (cantidad) y sumando el costo de envío (envio). "

import seaborn as sns
import matplotlib.pyplot as plt

# Aseguramos que los valores estén en formato numérico
df_consolidada['precio_unitario'] = pd.to_numeric(df_consolidada['precio_unitario'], errors='coerce')
df_consolidada['cantidad'] = pd.to_numeric(df_consolidada['cantidad'], errors='coerce')
df_consolidada['envio'] = pd.to_numeric(df_consolidada['envio'], errors='coerce')

# Creamos columna de facturación
df_consolidada['facturacion'] = (df_consolidada['precio_unitario'] * df_consolidada['cantidad']) + df_consolidada['envio']

# Agrupamos la facturación por región
df_region = df_consolidada.groupby('region', as_index=False)['facturacion'].sum().sort_values(by='facturacion', ascending=False)

# Creamos el gráfico con Seaborn
plt.figure(figsize=(10, 6))
sns.barplot(data=df_region, x='region', y='facturacion', palette='viridis')

# Añadimos título y etiquetas
plt.title('Facturación total por Región')
plt.xlabel('Región')
plt.ylabel('Facturación ($)')
plt.xticks(rotation=45)  # Rotamos etiquetas si son largas
plt.tight_layout()
plt.show()

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

Prompt 2

"A partir de mi DataFrame df_consolidada, crea un gráfico de barras apiladas utilizando solo las librerías de Pandas y Matplotlib, que muestre la cantidad de consumidores por sexo biológico (masculino y femenino) en los estados de Puebla y Ciudad de México. Considera lo siguiente: Los datos deben agruparse por 'estado' y 'sexo_biologico', contando cuántos consumidores hay por combinación. El gráfico debe tener: Barras apiladas para mostrar masculino y femenino en cada estado. Nombres de los estados inclinados a 0 grados. Un título que diga: "Público de CDMX y Puebla diferenciado por su sexo biológico". El lienzo debe mostrar ambos estados en un solo gráfico, no en gráficos separados."

import pandas as pd
import matplotlib.pyplot as plt

# Normalizamos texto para evitar errores
df_consolidada['estado'] = df_consolidada['estado'].str.strip().str.title()
df_consolidada['sexo_biologico'] = df_consolidada['sexo_biologico'].str.strip().str.lower()

# Filtramos los estados específicos
df_filtrado = df_consolidada[df_consolidada['estado'].isin(['Puebla', 'Ciudad De México'])]

# Agrupamos y contamos consumidores por estado y sexo
conteo_sexo_estado = (
    df_filtrado.groupby(['estado', 'sexo_biologico'])
    .size()
    .unstack(fill_value=0)
)

# Confirmamos que los datos son numéricos
conteo_sexo_estado = conteo_sexo_estado.astype(int)

# Graficamos barras apiladas
ax = conteo_sexo_estado.plot(
    kind='bar',
    stacked=True,
    figsize=(8, 6),
    title='Público de CDMX y Puebla diferenciado por su sexo biológico'
)

# Etiquetas e inclinación
ax.set_xlabel('Estado')
ax.set_ylabel('Cantidad de consumidores')
ax.set_xticklabels(ax.get_xticklabels(), rotation=0)

# Ajuste visual
plt.tight_layout()
plt.show()

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