Desafío 1:
Construye y ejecuta un prompt en ChatGPT para generar, a partir de nuestra base de datos, un visual que muestre el facturación de las ventas por región. Recuerda que aquí la facturación se calcula multiplicando el valor unitario por la cantidad comprada y sumando el costo de envío.
Prompt Reto 1
Tengo un DataFrame llamado df y quiero generar un gráfico que muestre la facturación total por región.
En df, tengo las columnas precio_unitario, cantidad, envio y region. La facturación debe calcularse como: precio_unitario * cantidad + envio.
¿Puedes ayudarme a agrupar los datos por región, sumar la facturación y mostrarlo en un gráfico de columnas?
Codigo
import pandas as pd
import matplotlib.pyplot as plt
# Crear columna de facturación
df['facturacion'] = (df['precio_unitario'] * df['cantidad']) + df['envio']
# Agrupar por región y sumar la facturación
facturacion_por_region = df.groupby('region')['facturacion'].sum().reset_index()
# Ordenar de mayor a menor
facturacion_por_region = facturacion_por_region.sort_values(by='facturacion', ascending=False)
# Crear gráfico de barras
plt.figure(figsize=(10,6))
plt.bar(facturacion_por_region['region'], facturacion_por_region['facturacion'], color='skyblue')
plt.title('Facturación Total por Región')
plt.xlabel('Región')
plt.ylabel('Facturación')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
Desafío 2:
Zoop quiere realizar una campaña en los estados de México y Puebla, por lo que necesita conocer el perfil de su público según el sexo biológico. Construye y ejecuta un prompt en ChatGPT para generar, a partir de nuestra base de datos, un visual que muestre la composición del público por sexo biológico en los estados de México y Puebla. Recuerda pedir que agrupe o apile los datos para la presentación.
Prompt Reto 2 Quiero crear un gráfico de columnas apiladas que muestre la cantidad de personas por sexo biológico (sexo_biologico) en los estados de México y Puebla, usando mi DataFrame llamado df.
En el DataFrame tengo una columna llamada estado con el nombre del estado, y otra llamada sexo_biologico.
¿Puedes ayudarme a filtrar solo esos dos estados y mostrar los datos agrupados en un gráfico apilado?
Codigo
import seaborn as sns
# Filtrar solo los estados México y Puebla
df_estados = df[df['estado'].isin(['México', 'Puebla'])]
# Crear tabla de conteo agrupada por estado y sexo biológico
conteo_sexo_estado = df_estados.groupby(['estado', 'sexo_biologico']).size().unstack()
# Crear gráfico de columnas apiladas
conteo_sexo_estado.plot(kind='bar', stacked=True, figsize=(8,6), colormap='Set2')
plt.title('Composición por Sexo Biológico en México y Puebla')
plt.xlabel('Estado')
plt.ylabel('Cantidad de Personas')
plt.xticks(rotation=0)
plt.legend(title='Sexo Biológico')
plt.tight_layout()
plt.show()