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

如何快速将大规模客户消费数据按月度区间分组

快速分组解决方案(R & Python)

核心思路

不用嵌套循环遍历所有可能的分组组合,而是为每个客户直接计算唯一的组ID:

  1. 先将每个月的消费金额映射为对应的分组编码(0-3,对应你定义的4个区间);
  2. 把12个月的编码看作一个4进制数,转换为十进制整数作为组ID(可加1让ID从1开始,匹配你的示例)。

这种方法是向量式操作,时间复杂度为O(n)(n为客户数),处理100万行数据毫无压力。


R 实现(推荐用data.table提升效率)

library(data.table)

# 1. 定义分组编码函数
categorize_month <- function(x) {
  dplyr::case_when(
    x == 0 ~ 0,                  # 消费=0
    x > 0 & x <= 25 ~ 1,         # 0<金额≤25
    x > 25 & x <= 50 ~ 2,        #25<金额≤50
    x > 50 & x <= 75 ~ 3,        #50<金额≤75
    TRUE ~ NA_integer_           # 处理超出范围的数值,可根据需求调整
  )
}

# 2. 加载并转换数据(假设你的数据列是id, m1到m12)
dt <- as.data.table(your_data)  # 替换为你的数据对象
month_cols <- paste0("m", 1:12) # 所有月份列名

# 3. 为每个月的金额编码
dt[, (month_cols) := lapply(.SD, categorize_month), .SDcols = month_cols]

#4. 计算组ID:将12个编码视为4进制数,转换为十进制(加1让ID从1开始)
powers_of_4 <- 4^(11:0)  # 4^11到4^0,对应12个月的权重
dt[, group_id := as.matrix(.SD) %*% powers_of_4 + 1, .SDcols = month_cols]

如果偏好dplyr:

library(dplyr)

your_data %>%
  mutate(across(starts_with("m"), categorize_month)) %>%
  mutate(group_id = as.matrix(select(., starts_with("m"))) %*% 4^(11:0) + 1)

Python 实现(用pandas)

import pandas as pd
import numpy as np

#1. 定义分组编码函数
def categorize_month(x):
    if x == 0:
        return 0
    elif 0 < x <= 25:
        return 1
    elif 25 < x <= 50:
        return 2
    elif 50 < x <= 75:
        return 3
    else:
        return np.nan  # 处理超出范围的数值

#2. 加载数据(假设列是id, m1到m12)
df = pd.read_csv("your_data.csv")  # 替换为你的数据加载方式
month_cols = [f"m{i}" for i in range(1, 13)]

#3. 为每个月的金额编码
df[month_cols] = df[month_cols].applymap(categorize_month)

#4. 计算组ID:4进制转十进制,加1让ID从1开始
powers_of_4 = 4 ** np.arange(11, -1, -1)  # 4^11到4^0的权重数组
df["group_id"] = (df[month_cols].values @ powers_of_4) + 1

说明

  • 每个唯一的12月消费模式会对应唯一的group_id,比如全年消费均为0的客户group_id=1,第一个月在0-25、其余为0的客户group_id=4^11 +1,完全符合你的分组逻辑。
  • 向量式操作避免了嵌套循环的巨大开销,处理100万行数据仅需几秒。

内容的提问来源于stack exchange,提问作者Alberto Perez Martinez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:00:58