คำนวณค่า RFM
คำนวณค่า Recency, Frequency และ Monetary สำหรับชุดข้อมูล online ที่เคยใช้งานก่อนหน้า ซึ่งโหลดไว้ให้แล้วพร้อมข้อมูล 12 เดือนล่าสุด ชุดข้อมูล online มีคอลัมน์ TotalSum ที่คำนวณได้จากการคูณ Quantity กับ UnitPrice ดังนี้: online['Quantity'] * online['UnitPrice']
นอกจากนี้ มีตัวแปร snapshot_date ให้ใช้สำหรับคำนวณค่า Recency สามารถพิมพ์ชุดข้อมูล online และ snapshot_date ไปยัง Console ได้ตามต้องการ ไลบรารี pandas โหลดไว้เป็น pd และ datetime เป็น dt
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การแบ่งกลุ่มลูกค้าด้วย Python
คำแนะนำการฝึกหัด
- คำนวณค่า Recency, Frequency และ Monetary (ตามลำดับนี้) สำหรับลูกค้าแต่ละราย
- สำหรับ Recency ให้คำนวณผลต่างระหว่างค่า
snapshot_dateกับค่าmaxของInvoiceDate - เปลี่ยนชื่อคอลัมน์เป็น Recency, Frequency และ MonetaryValue
- พิมพ์ส่วนหัวพร้อม 5 แถวแรกของ
datamart
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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())