Výpočet hodnot RFM
Vypočítej hodnoty Recency, Frequency a Monetary pro dataset online, který jsme používali dříve – je pro tebe načtený s daty za posledních 12 měsíců. Dataset online obsahuje sloupec TotalSum, který vznikl vynásobením Quantity a UnitPrice: online['Quantity'] * online['UnitPrice'].
Navíc jsme pro tebe připravili proměnnou snapshot_date, kterou můžeš využít k výpočtu recency. Klidně si do konzole vypiš dataset online i hodnotu snapshot_date. Knihovna pandas je načtena jako pd a datetime jako dt.
Toto cvičení je součástí kurzu
Segmentace zákazníků v Pythonu
Pokyny k cvičení
- Vypočítej hodnoty Recency, Frequency a Monetary (v tomto pořadí) pro každého zákazníka.
- Pro Recency vypočítej rozdíl mezi hodnotou
snapshot_datea maximem sloupceInvoiceDate. - Přejmenuj sloupce na Recency, Frequency a MonetaryValue.
- Vypiš záhlaví s prvními 5 řádky datasetu
datamart.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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())