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

Perfil de los clientes

Prompt 1

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

Contexto:
Tengo un dataframe llamado df_consolidado que incluye información de clientes y compras.
Además, el dataset original de clientes incluye una columna llamada "cashback", que indica si el cliente está pre-registrado en Zoop Pay ("Sí" o "No").

Si la columna "cashback" no está en df_consolidado, debes recalcular el merge con el dataset de clientes para incorporarla usando la llave ID_compra.

Tareas:

  1. Asegurarte de que la columna "cashback" esté disponible en df_consolidado.

  2. Calcular el porcentaje de clientes únicos (ID_cliente) que:

    • Están pre-registrados ("Sí")
    • No están pre-registrados ("No")
  3. Crear un gráfico circular (pie chart) que muestre:

    • Proporción de clientes pre-registrados vs no pre-registrados
    • Título: "Proporción de clientes pre-registrados en Zoop Pay"
    • Mostrar porcentaje en el gráfico
    • No definir colores manualmente
    • Un solo gráfico
  4. 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 que contiene:

  • edad
  • region
  • ID_cliente

Objetivo:
Zoop quiere visualizar la distribución de edades de sus clientes por región para entender el perfil demográfico en distintas localidades.

Tareas:

  1. Verificar que la columna "region" esté disponible en df_consolidado.

    • Si no está, recalcular el merge con el dataset de clientes usando ID_compra para incorporarla.
  2. Trabajar únicamente con clientes únicos (ID_cliente) para evitar duplicaciones por múltiples compras.

  3. Crear un gráfico que muestre la distribución de edades por región.

    • Usar histogramas superpuestos (uno por región)
    • Incluir leyenda con nombre de cada región
    • Título: "Distribución de edades por región"
    • Eje X: Edad
    • Eje Y: Frecuencia
    • No definir colores manualmente
    • Un solo gráfico
  4. 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!

Para resolver tus dudas, aquí tienes el código para cada uno de los prompts que mencionaste. Asegúrate de tener los dataframes correctos y las librerías necesarias instaladas.

Prompt 1

import pandas as pd
import matplotlib.pyplot as plt

# Asegúrate de que la columna "cashback" esté en df_consolidado
if 'cashback' not in df_consolidado.columns:
    df_consolidado = df_consolidado.merge(clientes_df[['ID_compra', 'cashback']], on='ID_compra', how='left')

# Calcular el porcentaje de clientes únicos pre-registrados y no pre-registrados
clientes_unicos = df_consolidado.drop_duplicates(subset='ID_cliente')
porcentaje_cashback = clientes_unicos['cashback'].value_counts(normalize=True) * 100

# Crear gráfico circular
plt.figure(figsize=(8, 8))
plt.pie(porcentaje_cashback, labels=porcentaje_cashback.index, autopct='%1.1f%%')
plt.title("Proporción de clientes pre-registrados en Zoop Pay")
plt.show()

Prompt 2

import pandas as pd
import matplotlib.pyplot as plt

# Asegúrate de que la columna "region" esté en df_consolidado
if 'region' not in df_consolidado.columns:
    df_consolidado = df_consolidado.merge(clientes_df[['ID_compra', 'region']], on='ID_compra', how='left')

# Trabajar solo con clientes únicos
clientes_unicos = df_consolidado.drop_duplicates(subset='ID_cliente')

# Crear gráfico de distribución de edades por región
plt.figure(figsize=(12, 6))
for region in clientes_unicos['region'].unique():
    subset = clientes_unicos[clientes_unicos['region'] == region]
    plt.hist(subset['edad'], bins=20, alpha=0.5, label=str(region))

plt.title("Distribución de edades por región")
plt.xlabel("Edad")
plt.ylabel("Frecuencia")
plt.legend(title="Región")
plt.show()

Espero que esto te ayude a completar tus tareas. ¡Bons estudos!