Segmentation de la clientèle en Python
Karolis Urbonas
Head of Data Science, Amazon
online que dans les leçons précédentesTotalSum = Quantity x UnitPrice.
Nous partons d'un DataFrame online prétraité ne couvrant que les 12 derniers mois :
print('Min:{}; Max:{}'.format(min(online.InvoiceDate),
max(online.InvoiceDate)))
Min:2010-12-10; Max:2011-12-09
Créons une valeur hypothétique de snapshot_day comme si l'analyse était récente.
snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
# Agréger les données au niveau client datamart = online.groupby(['CustomerID']).agg({ 'InvoiceDate': lambda x: (snapshot_date - x.max()).days, 'InvoiceNo': 'count', 'TotalSum': 'sum'})# Renommer les colonnes pour faciliter l'interprétation datamart.rename(columns = {'InvoiceDate': 'Recency', 'InvoiceNo': 'Frequency', 'TotalSum': 'MonetaryValue'}, inplace=True)# Vérifier les premières lignes datamart.head()
Notre table pour la segmentation RFM est prête !

Segmentation de la clientèle en Python