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

如何基于客户邮箱与日期为订单分配对应购买次数整数标识

按客户维度标记订单购买次数的实现方案

以下是不同场景下的落地实现方法:

电子表格(Excel/Google Sheets)实现

  • 第一步先将全量数据按「客户邮箱地址」+「下单日期」升序排序,确保同一客户的订单按购买时间从早到晚排列
  • 假设A列是下单日期、B列是客户邮箱地址、C列为购买次数标记列,在C2单元格输入公式:=COUNTIF($B$2:B2, B2),回车后下拉填充整列即可得到数值格式的购买次数
  • 若需要显示为「第X次购买」的文本格式,可将公式调整为:="第"&COUNTIF($B$2:B2, B2)&"次购买"

注意:COUNTIF的第一个参数要使用混合引用锁定起始行,下拉填充时统计范围会逐行向下扩展,只会统计当前行及以上的同邮箱订单数,刚好对应按时间排序后的购买顺序

SQL实现

假设订单表名为order_records,包含字段order_date(下单日期)、customer_email(客户邮箱),直接用窗口函数查询即可:

SELECT 
  order_date,
  customer_email,
  ROW_NUMBER() OVER (PARTITION BY customer_email ORDER BY order_date ASC) AS purchase_times
FROM order_records;

逻辑说明:PARTITION BY按客户邮箱分组,ORDER BY按下单日期升序排列,ROW_NUMBER会给每个分组内的行按顺序生成连续序号,就是对应客户的第几次购买

Python Pandas实现(适合大批量数据处理)

先排序再分组生成序号即可:

import pandas as pd

# 读取数据后先按客户邮箱、下单日期升序排序
df = df.sort_values(by=['customer_email', 'order_date'], ascending=[True, True])
# 生成数值格式的购买次数,cumcount从0开始计数所以要+1
df['purchase_times'] = df.groupby('customer_email').cumcount() + 1
# 如需转成中文文本格式可以用下面的代码
df['purchase_times_text'] = '第' + df['purchase_times'].astype(str) + '次购买'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:48:04