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

如何基于客户下单次数条件在Pandas中创建布尔值列

实现逻辑

要实现客户第三次下单时标记为True的需求,核心是先统计每个客户到当前行的下单次数序号:

  1. 用groupby('customer_id')对每个客户的订单分组
  2. 用cumcount()方法生成分组内的行序号,从0开始计数,对应第1/2/3...次下单
  3. 当序号等于2时,刚好对应客户的第3次下单,标记为True,其余情况标记为False

完整代码

如果你需要用np.where实现,补全后的代码如下:

import pandas as pd
import numpy as np

# 示例DataFrame
df = pd.DataFrame({
          'customer_id': ['5257', '8034', '21474', '21474', '21474', '6157']
})

# 补全后的赋值逻辑
df['recurring_customer'] = np.where(df.groupby('customer_id').cumcount() == 2, True, False)

补充说明

  • 运行后得到的recurring_customer列是布尔类型,如果你需要字符串格式的"True"/"False",可以把代码里的True, False改成"True", "False"即可
  • 你给出的期望输出示例存在小的格式笔误(长度不匹配、少引号),上述代码运行后的结果完全符合你的业务需求
  • 也可以不用np.where,直接用更简洁的写法实现同样效果:
df['recurring_customer'] = df.groupby('customer_id').cumcount() == 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:36:03