Na czym to polega w sklepie
Funkcja np.select wybiera wartość z listy opcji dla pierwszego spełnionego warunku (jak switch-case wektorowy). W CRM e-commerce oznaczasz klientów Champions / At Risk / Lost na podstawie progów LTV i dni od ostatniego zakupu.
Przykład ze sklepu internetowego
Tablice ltv i days_since_purchase z eksportu klientów. Chcesz kolumnę segmentu pod import do narzędzia mailingowego:
import numpy as np
ltv = np.array([1200, 450, 80, 2100, 320, 50])
recency = np.array([5, 45, 120, 12, 90, 200])
conditions = [
(ltv >= 1000) & (recency <= 30),
(ltv >= 500) & (recency <= 60),
recency > 90,
]
choices = ["champion", "loyal", "at_risk"]
segments = np.select(conditions, choices, default="standard")
# Kolejność conditions ma znaczenie - pierwszy match wygrywa
Co zrobić po stronie biznesu
- Flagi ROAS: „scale”, „hold”, „pause” na podstawie progów spend i revenue.
- Klasyfikacja bounce rate sesji GA4: engaged / neutral / bounce po czasie i pageviews.
- Pułapka: nakładające się warunki - wyższy priorytet musi być pierwszy w liście, inaczej segment się nie zgadza.
W skrócie
np.select zastępuje kolumnę z dziesiątkiem np.where. Parametr default łapie resztę - bez niego dostaniesz 0 i pomyłisz z metryką.