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

Respuesta al foro – Desafío Zoop Pay

Hola compañeros,

Para resolver el desafío propuesto, primero realicé la lectura de las tres bases de datos desde las URLs proporcionadas. Luego, uní las bases de ventas y clientes utilizando como clave la columna ID_compra. A continuación, organicé las columnas en el orden solicitado para facilitar el análisis.

Después, uní este DataFrame resultante con la base de zoop_pay a través de la columna ID_cliente, y finalmente ajusté el formato de la columna fecha a tipo datetime con el formato "YYYY-MM-DD".

Comparto a continuación el código completo que utilicé en Google Colab:

Importar pandas

import pandas as pd

URLs de los datasets

url_clientes = "https://gist.githubusercontent.com/ahcamachod/d08898e1cc84c7271856e78d9558ca3d/raw/2f7e1fa53711efe6433a5c5ec79948f600591cb9/clientes_zoop.csv"
url_ventas = "https://gist.githubusercontent.com/ahcamachod/966d7162a3c3a2769b8770b35abf1bcc/raw/d79941b3fa46a450f3611589abd8663399c1277b/ventas_zoop.csv"
url_zoop_pay = "https://gist.githubusercontent.com/ahcamachod/ce728231a836a973c0df94a9f03ed871/raw/8db6da43d7cd94fcab937208067d0fceb521b78c/zoop_pay.csv"

Leer los datos desde las URLs

clientes = pd.read_csv(url_clientes)
ventas = pd.read_csv(url_ventas)
zoop_pay = pd.read_csv(url_zoop_pay)

Unir 'ventas' y 'clientes' usando 'ID_compra' como clave

df = pd.merge(ventas, clientes, on="ID_compra")

Ordenar columnas según lo solicitado

columnas_ordenadas = [
"ID_compra", "fecha", "horario", "categoria", "precio_unitario", "cantidad",
"envio", "metodo_pago", "ID_cliente", "edad", "sexo_biologico", "ciudad",
"estado", "region", "cashback", "nota"
]
df = df[columnas_ordenadas]

Unir con la base de datos 'zoop_pay' usando 'ID_cliente'

df = pd.merge(df, zoop_pay, on="ID_cliente")

Convertir la columna 'fecha' a formato datetime

df['fecha'] = pd.to_datetime(df['fecha'], format='%Y-%m-%d')

Mostrar las primeras filas para verificar el resultado

df.head()

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

1 respuesta

Hola Harold, espero que estés bien

¡Tu enfoque para resolver el desafío parece muy bien estructurado! Has realizado correctamente la lectura de los datos y la unión de las bases de datos utilizando las claves adecuadas. Además, convertir la columna de fecha al formato datetime es un paso crucial para cualquier análisis temporal.

Aquí hay algunos puntos que podrías considerar para asegurarte de que todo esté en orden:

  1. Verificación de Datos Faltantes: Antes de unir las bases de datos, es útil verificar si hay datos faltantes en las columnas clave (ID_compra y ID_cliente). Esto puede evitar problemas durante la unión.

    print(clientes.isnull().sum())
    print(ventas.isnull().sum())
    print(zoop_pay.isnull().sum())
    
  2. Duplicados: Asegúrate de que no haya duplicados en las columnas clave que podrían afectar la unión.

    print(clientes.duplicated(subset='ID_compra').sum())
    print(ventas.duplicated(subset='ID_compra').sum())
    print(zoop_pay.duplicated(subset='ID_cliente').sum())
    
  3. Tipos de Datos: Verifica que los tipos de datos de las columnas clave sean compatibles antes de realizar la unión.

    print(clientes.dtypes)
    print(ventas.dtypes)
    print(zoop_pay.dtypes)
    
  4. Visualización: Ahora que tienes el DataFrame consolidado, podrías considerar crear algunas visualizaciones para explorar los datos. Por ejemplo, gráficos de barras para analizar las ventas por categoría o gráficos de líneas para observar tendencias a lo largo del tiempo.

Espero que estos consejos te sean útiles. ¡Bons estudios!