Bắt đầu ngayBắt đầu miễn phí

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 QuantityUnitPrice: 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 onlinesnapshot_date ra Console nếu muốn. Thư viện pandas đã được nạp là pd, và datetimedt.

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

Xem khóa học

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_datemax của InvoiceDate.
  • Đổ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())
Chỉnh sửa và Chạy Mã