You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为RFM模型输出的Recency、Frequency数据新增对应分段标签列

RFM分段标签生成实现方案

你可以直接用pandas的cut分箱函数实现批量分段,全程不需要循环判断,效率很高,适配大批量数据场景。

完整代码示例

import pandas as pd

# 1. 读取你的csv数据,替换为你实际的文件路径即可
# df_rf = pd.read_csv("你的rfm结果文件路径.csv")

# 这里直接用你给出的示例数据做演示
df_rf = pd.DataFrame({
    "frequency": [1,1,1,2,2],
    "recency": [179,158,61,82,314]
})

# 2. Recency分段:完全匹配你给出的规则
r_bins = [0, 30, 60, 120, 180, 360]
r_labels = ["R5", "R4", "R3", "R2", "R1"]
df_rf["Recency_label"] = pd.cut(df_rf["recency"], bins=r_bins, labels=r_labels, right=True)

# 3. Frequency分段:完全匹配你给出的规则
f_bins = [0, 1, 5, 9, 11, float("inf")]
f_labels = ["F1", "F2", "F3", "F4", "F5"]
df_rf["Frequency_label"] = pd.cut(df_rf["frequency"], bins=f_bins, labels=f_labels, right=True)

# 输出结果查看,如需保存到新csv执行下一行即可
# df_rf.to_csv("带标签的rfm结果.csv", index=False)
print(df_rf)

输出结果验证

运行后得到的结果和你期望的完全一致:

frequency  recency Recency_label Frequency_label
0          1      179            R2              F1
1          1      158            R2              F1
2          1       61            R3              F1
3          2       82            R3              F2
4          2      314            R1              F2

边界值说明

  • 如果你的recency存在超过360天的数据,可以把r_bins的上限从360改成float("inf"),新增对应标签即可
  • 分箱默认采用左开右闭规则,完全适配你给出的区间划分要求,比如180天属于R2、181天属于R1,12次购买属于F5

内容的提问来源于stack exchange,提问作者adey27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:36:01