Calculer les valeurs RFM
Calculez les valeurs de récence, fréquence et montant (RFM) pour le jeu de données online déjà utilisé auparavant — il a été chargé pour vous avec les 12 derniers mois de données. Il y a une colonne TotalSum dans le jeu de données online, calculée en multipliant Quantity et UnitPrice : online['Quantity'] * online['UnitPrice'].
Nous avons également créé une variable snapshot_date que vous pouvez utiliser pour calculer la récence. N’hésitez pas à afficher le jeu de données online et snapshot_date dans la console. La bibliothèque pandas est chargée sous le nom pd, et datetime sous dt.
Cet exercice fait partie du cours
Customer Segmentation in Python
Instructions
- 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
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 cet exemple de code.
# 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())