python -构建RFM模型

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

# 读取订单表格数据
df = pd.read_csv('https://media-zip1.baydn.com/storage_media_zip/srfeae/bf6dc7d814c520c60e5e632d281f14a4.ba163c25251bd44b74bde1bb4af7abdc.csv')
# 将订单日期转为日期格式
df['订单日期'] = pd.to_datetime(df['订单日期'])
# 计算 RFM
df_rfm = df.groupby('用户名').agg({
  '订单日期': lambda x: (pd.to_datetime('2019-12-31') - x.max()).days,  # 计算 R
  '用户名': lambda x: len(x),  # 计算 F
  '订单金额': lambda x: x.sum()  # 计算 M
})
# 列名重命名
df_rfm.rename(columns={'订单日期': 'R', '用户名': 'F', '订单金额': 'M'}, inplace=True)

def r_score(x):
  if x <= 29:
    return 4
  elif x <= 58:
    return 3
  elif x <= 119:
    return 2
  else:
    return 1

def f_score(x):
  if x<=1:
    return 1
  elif x<=2:
    return 2
  

你可能感兴趣的:(python,开发语言,后端)