Tính các giá trị RFM
Hãy tính Recency, Frequency và Monetary cho dataset online mà bạn đã dùng trước đó — dữ liệu 12 tháng gần nhất đã được nạp sẵn cho bạn. Có cột TotalSum trong dataset online được tính bằng cách nhân Quantity và UnitPrice: online['Quantity'] * online['UnitPrice'].
Ngoài ra, chúng tôi đã tạo biến snapshot_date để bạn dùng tính recency. Bạn có thể in dataset online và snapshot_date ra Console nếu muốn. Thư viện pandas đã được nạp là pd, và datetime là dt.
Bài tập này là một phần của khóa học
Phân khúc khách hàng bằng Python
Hướng dẫn bài tập
- Tính lần lượt Recency, Frequency và Monetary (theo thứ tự này) cho từng khách hàng.
- Với Recency - tính hiệu giữa giá trị
snapshot_datevàmaxcủaInvoiceDate. - Đổi tên các cột thành Recency, Frequency và MonetaryValue.
- In phần đầu với 5 dòng đầu tiên của
datamart.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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())