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

Generando visualizaciones con respecto a la localización

Promprt 1

Necesito que generes código en Python usando pandas y matplotlib (sin seaborn).

Contexto:
Ya tengo un dataframe llamado df_consolidado con estas columnas:
[ID_compra, fecha, horario, categoria, precio_unitario, cantidad, envio, metodo_pago, ID_cliente, edad, sexo_biologico, ciudad]

Además, existe la columna "region" en el dataset original de clientes, por lo que debes asegurarte de que esté disponible. Si no está en df_consolidado, debes recalcular el merge correctamente para incorporarla.

Tareas:

  1. Crear una nueva columna llamada "facturacion" definida como:
    facturacion = precio_unitario * cantidad + envio

  2. Agrupar los datos por "region" y calcular la suma total de facturación por región.

  3. Ordenar el resultado de mayor a menor facturación.

  4. Crear un gráfico de barras (matplotlib) que muestre:

    • Eje X: Región
    • Eje Y: Facturación total
    • Título: "Facturación total por región"
    • Rotar etiquetas del eje X si es necesario
    • No definir colores manualmente
    • Un solo gráfico (no subplots)
  5. Mostrar el gráfico.

Entrega solo código, organizado y comentado brevemente.

Prompt 2

Necesito que generes código en Python usando pandas y matplotlib (sin seaborn).

Contexto:
Tengo un dataframe llamado df_consolidado con estas columnas:
[ID_compra, fecha, horario, categoria, precio_unitario, cantidad, envio, metodo_pago, ID_cliente, edad, sexo_biologico, ciudad]

Además, el dataset incluye la columna "estado".

Objetivo:
Zoop quiere analizar el perfil del público en los estados de:

  • México
  • Puebla

Tareas:

  1. Filtrar el dataframe para incluir únicamente los estados "México" y "Puebla".

  2. Agrupar los datos por:

    • estado
    • sexo_biologico
  3. Calcular el conteo de clientes por grupo.

  4. Transformar los datos en formato adecuado para crear un gráfico de barras apiladas.

  5. Crear un gráfico de barras apiladas que muestre:

    • Eje X: Estado
    • Eje Y: Cantidad de clientes
    • Segmentos apilados: Sexo biológico
    • Título: "Composición del público por sexo biológico (México y Puebla)"
    • No definir colores manualmente
    • Un solo gráfico
  6. Mostrar el gráfico.

Entrega solo código organizado y comentado brevemente.

Gráfico 1

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

Gráfico 2

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

1 respuesta

¡Hola Randy, espero que estés bien!

Aquí tienes el código para realizar las visualizaciones que necesitas:

Prompt 1

import pandas as pd
import matplotlib.pyplot as plt

# Asegúrate de que la columna 'region' esté disponible
if 'region' not in df_consolidado.columns:
    df_clientes = pd.read_csv('ruta/del/dataset_clientes.csv')  # Cambia la ruta según corresponda
    df_consolidado = df_consolidado.merge(df_clientes[['ID_cliente', 'region']], on='ID_cliente', how='left')

# 1. Crear la columna 'facturacion'
df_consolidado['facturacion'] = df_consolidado['precio_unitario'] * df_consolidado['cantidad'] + df_consolidado['envio']

# 2. Agrupar y calcular la suma total de facturación por región
facturacion_por_region = df_consolidado.groupby('region')['facturacion'].sum()

# 3. Ordenar de mayor a menor facturación
facturacion_por_region = facturacion_por_region.sort_values(ascending=False)

# 4. Crear el gráfico de barras
plt.figure(figsize=(10, 6))
facturacion_por_region.plot(kind='bar')
plt.title('Facturación total por región')
plt.xlabel('Región')
plt.ylabel('Facturación total')
plt.xticks(rotation=45)
plt.tight_layout()

# 5. Mostrar el gráfico
plt.show()

Prompt 2

import pandas as pd
import matplotlib.pyplot as plt

# 1. Filtrar el dataframe para incluir solo los estados "México" y "Puebla"
df_filtrado = df_consolidado[df_consolidado['estado'].isin(['México', 'Puebla'])]

# 2. Agrupar los datos por estado y sexo_biologico
conteo_por_grupo = df_filtrado.groupby(['estado', 'sexo_biologico']).size().unstack()

# 3 y 4. Transformar los datos para el gráfico de barras apiladas
# (ya está en el formato adecuado después de unstack)

# 5. Crear el gráfico de barras apiladas
conteo_por_grupo.plot(kind='bar', stacked=True, figsize=(10, 6))
plt.title('Composición del público por sexo biológico (México y Puebla)')
plt.xlabel('Estado')
plt.ylabel('Cantidad de clientes')
plt.tight_layout()

# 6. Mostrar el gráfico
plt.show()

Espero que esto te ayude y buenos estudios!