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()
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()