Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Para este ejercicio realicé 2 Prompt

1

Necesito que generes código en Python (pandas) para Google Colab/Jupyter.

1) Lee estas dos bases desde URL:
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"

2) Cárgalas en dataframes df_clientes y df_ventas.

3) Muéstrame:
- df_clientes.head(), df_ventas.head()
- df_clientes.info(), df_ventas.info()
- lista de columnas de cada uno (df_clientes.columns y df_ventas.columns)

4) Define claramente la(s) columna(s) llave para unir ventas con clientes (por ejemplo ID_cliente u otra que exista en ambos). 
- Si los nombres de columnas no coinciden, renómbralas para que la llave tenga el mismo nombre en ambos dataframes.
- Asegúrate de que la llave tenga el mismo tipo (string o int) en ambos.

5) Convierte la columna de fecha de ventas a datetime.
- Detecta el nombre real de la columna de fecha (puede llamarse "fecha" u otro parecido).
- Convierte con pd.to_datetime(..., errors="coerce", dayfirst=True) y deja la columna como datetime.
- Reporta cuántos NaT quedaron tras la conversión.

6) Une df_ventas con df_clientes usando merge (left join desde ventas para no perder compras) y guarda el resultado en un dataframe llamado df.

7) Ordena las columnas finales de df en este orden (si alguna no existe, créala como NaN):
[ID_compra, fecha, horario, categoria, precio_unitario, cantidad, envio, metodo_pago, ID_cliente, edad, sexo_biologico, ciudad]

8) Al final imprime:
- df.head()
- df.shape
- df.isna().sum().sort_values(ascending=False).head(15)

No expliques teoría: entrega el código en celdas (bloques) y comentarios breves en el código.

2

Ahora continúa desde el dataframe df ya creado (ventas + clientes).

1) Lee esta tercera base desde URL:
url_zoop_pay = "https://gist.githubusercontent.com/ahcamachod/ce728231a836a973c0df94a9f03ed871/raw/8db6da43d7cd94fcab937208067d0fceb521b78c/zoop_pay.csv"

2) Cárgala en df_zoop.

3) Muéstrame:
- df_zoop.head()
- df_zoop.info()
- df_zoop.columns

4) Objetivo: concatenar df (clientes+ventas) con df_zoop para crear una tabla consolidada con todos los registros en un dataframe llamado df_consolidado.

Reglas:
- La tabla final df_consolidado debe tener exactamente estas columnas y en este orden:
[ID_compra, fecha, horario, categoria, precio_unitario, cantidad, envio, metodo_pago, ID_cliente, edad, sexo_biologico, ciudad]

- Antes de concatenar, estandariza df_zoop para que tenga esas mismas columnas.
  * Si df_zoop trae solo clientes pre-registrados (sin compras), entonces:
    - ID_compra, horario, categoria, precio_unitario, cantidad, envio, metodo_pago deben quedar como NaN
    - fecha también como NaT (datetime)
  * Asegura que ID_cliente tenga el mismo tipo que en df.

- Asegura que la columna fecha en df_zoop esté como datetime (aunque quede NaT).

5) Concatena con pd.concat([df, df_zoop_estandarizado], ignore_index=True) y guarda en df_consolidado.

6) Valida:
- df_consolidado.shape
- df_consolidado.dtypes
- df_consolidado.head()
- porcentaje de nulos por columna (df_consolidado.isna().mean()*100).sort_values(ascending=False)

Entrega solo código en celdas con comentarios breves.