CommencerCommencez gratuitement

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

<cours>Customer Segmentation in Python</cours>
Voir le cours

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 snapshot_date et le max de InvoiceDate.
  • 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())
Modifier et exécuter le code