Nivel 1 · ¿Nuevo o recurrente?
0 de 3
La solicitud

De Jordan Reyes, Director de Marketing
Tu objetivo
A partir de booked (pedidos contabilizados, construido en el código inicial), asigna a result un DataFrame con una fila por año y las columnas year, new_orders (pedidos que son el primer pedido contabilizado del cliente), returning_orders (todos los demás pedidos contabilizados) y new_share_pct (new_orders * 100 / todos los pedidos contabilizados de ese año, redondeado a 2). El primer pedido de un cliente es el pedido contabilizado con su order_id más bajo. Ordena por año.
- Muestra exactamente
yearnew_ordersreturning_ordersnew_share_pctpendiente - 3 filas, ordenadas como se pidependiente
Tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Jordan, y por qué
La lección
Dos tipos de pedido
Todo pedido es el primer pedido de un cliente (una adquisición) o un pedido repetido de un cliente que la tienda ya tiene. Los equipos de marketing los separan porque se compran de forma distinta: los primeros pedidos cuestan dinero en anuncios; los pedidos repetidos vienen sobre todo de la calidad del producto, el correo y el hábito.
En Harbor & Pine la división está desequilibrada. En 2025 hubo 4,409 pedidos contabilizados y solo 641 fueron el primero de alguien:
# year new_orders returning_orders new_share_pct
# 2023 574 2398 19.31
# 2024 525 3247 13.92
# 2025 641 3768 14.54
Cerca de seis de cada siete pedidos vienen de clientes que ya habían comprado.
Cuál es el “primero”
La definición necesita dos decisiones. ¿Qué estados cuentan? Solo los pedidos contabilizados (completed
o refunded). Un cliente cuyo primer intento se canceló no fue adquirido ese día; fue adquirido cuando pagó
por primera vez. ¿Cómo se desempata? Los ids de pedido crecen con el tiempo, así que el order_id
contabilizado más bajo por cliente es su primer pedido. Usar el order_date mínimo funciona casi siempre,
pero un cliente hizo tres pedidos en el mismo segundo en 2024, y una marca basada en fecha cuenta los tres
como “primero”.
En pandas, groupby(...).transform("min") devuelve el mínimo del grupo en cada fila del grupo, así que una
sola comparación marca el primer pedido:
first_id = booked.groupby("customer_id")["order_id"].transform("min")
booked["is_new"] = booked["order_id"] == first_id
El primer año de datos miente
2023 muestra 19.31 % de pedidos nuevos, muy por encima de los años siguientes. Parte de eso es crecimiento real, pero parte es censura por la izquierda: los datos empiezan el 2023-01-01, así que un cliente leal que compraba desde 2022 aparece en 2023 con un “primer pedido”. 152 de los 574 clientes contados como nuevos en 2023 se habían registrado antes de 2023. Donde sea que empiece la ventana, el primer período sobreestima la adquisición. Repórtalo con una nota o déjalo fuera de las líneas de tendencia.
Errores comunes
- Contar clientes nuevos desde
signup_date. Registrarse no es comprar. 278 clientes no tienen ningún pedido contabilizado (247 nunca hicieron uno). - Usar todos los estados. Los pedidos cancelados y pendientes inflan ambos conteos y mueven el primer pedido a una fecha en la que no se pagó nada.
- Leer la proporción como crecimiento. Una proporción de nuevos que cae puede significar que la adquisición se frenó o que la recompra creció más rápido. Mira ambos conteos, no solo el porcentaje.
Nota de entrevista
“¿Cómo definirías a un cliente nuevo?” no tiene una única respuesta correcta, y por eso se pregunta. Di qué cuenta como pedido, cómo encuentras el primero y qué le hace el inicio de los datos al primer período. Esa es la respuesta.
¡Linterna encendida!
Practicaste: new customersreturning customersfirst ordergroupbytransform
- Resuelto
- Sin pistas
- Al primer intento
