Calculer les valeurs RFM
Calculez les valeurs de récence, de fréquence et de valeur monétaire pour l'ensemble de données online que nous avons déjà utilisé — il a été chargé pour vous avec les 12 derniers mois de données. La colonne TotalSum dans online a été calculée en multipliant Quantity par UnitPrice : online['Quantity'] * online['UnitPrice'].
Nous avons aussi créé une variable snapshot_date que vous pouvez utiliser pour calculer la récence. N'hésitez pas à imprimer l'ensemble de données online et la variable snapshot_date dans la console. La bibliothèque pandas est chargée sous pd, et datetime sous dt.
Cette activité fait partie du cours
Segmentation de la clientèle en Python
Instructions de l’exercice
- Calculez, dans cet ordre, la récence, la fréquence et la valeur monétaire pour chaque client.
- Pour la récence, calculez la différence entre la valeur de
snapshot_dateet lemaxdeInvoiceDate. - Renommez les colonnes en Recency, Frequency et MonetaryValue.
- Affichez l'en-tête avec les 5 premières lignes de
datamart.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Calculate Recency, Frequency and Monetary value for each customer
datamart = online.groupby(['CustomerID']).agg({
'InvoiceDate': lambda x: (snapshot_date - x.____()).days,
'InvoiceNo': '____',
'TotalSum': '____'})
# Rename the columns
datamart.rename(columns={'InvoiceDate': '____',
'InvoiceNo': '____',
'TotalSum': '____'}, inplace=True)
# Print top 5 rows
print(____.head())