เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

คำนวณค่า 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())
แก้ไขและรันโค้ด