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

如何基于Pandas DataFrame条件规则为用户生成对应忠诚度标签

实现方案

完整代码

import pandas as pd
import numpy as np

# 示例数据初始化
data = {
'user_id': [
    '9EPWZVMNP6D6KWX', '9EPWZVMNP6D6KWX', '9EPWZVMNP6D6KWX',
    '9EPWZVMNP6D6KWX', '9EPWZVMNP6D6KWX', '9EPWZVMNP6D6KWX'
],
'timestamp': [
    1612139269, 1612139665, 1612139579,
    1612141096, 1612143046, 1612143729
],
'type': ['productDetails', 'productDetails', 'checkout:confirmation', 'checkout:confirmation', 'productList', 'checkout:confirmation'],
'session': [0,1,2,3,4,5],
'count_session_products': [4, 1, 0, 4, 2, 2]}
test_df = pd.DataFrame(data)

# 第一步:按用户ID+时间戳排序,保证行为顺序正确
test_df = test_df.sort_values(['user_id', 'timestamp']).reset_index(drop=True)

# 第二步:赋值前两类标签,修正原有逻辑漏加的count_session_products>0规则条件
test_df['loyalty'] = np.where(
    (test_df['session'] > 0) & 
    (test_df['type'] != 'checkout:confirmation') & 
    (test_df['count_session_products'] > 0), 
    'frequent_visitor', 
    None
)
test_df.loc[test_df['session'] == 0, 'loyalty'] = 'first_time_visitor'

# 第三步:统计每个用户checkout:confirmation的出现次序
# 筛选出下单行,按用户分组统计次序(从1开始计数)
test_df['checkout_rank'] = test_df[test_df['type'] == 'checkout:confirmation'].groupby('user_id').cumcount() + 1
# 非下单行填充为0
test_df['checkout_rank'] = test_df['checkout_rank'].fillna(0).astype(int)

# 第四步:赋值客户类标签
test_df.loc[test_df['checkout_rank'] == 1, 'loyalty'] = 'first_time_customer'
test_df.loc[test_df['checkout_rank'] == 2, 'loyalty'] = 'repeat_customer'
test_df.loc[test_df['checkout_rank'] >= 3, 'loyalty'] = 'loyal_customer'

# 可选:删除辅助列
test_df = test_df.drop('checkout_rank', axis=1)

# 输出结果
print(test_df)

逻辑说明

  • 排序是必要前置步骤:必须按用户+时间戳排序,才能保证统计的下单次序符合实际行为先后顺序
  • 下单次序统计用groupby.cumcount():可以针对每个用户的下单行自动生成从0开始的序列,加1后就得到第1/2/3次下单的标记
  • 标签赋值优先级:下单类标签优先级高于访客类标签,后执行赋值会覆盖原来的None值,不会和已有标签冲突

运行结果示例

最终输出的loyalty列对应结果如下:

索引user_idloyalty
09EPWZVMNP6D6KWXfirst_time_visitor
19EPWZVMNP6D6KWXfrequent_visitor
29EPWZVMNP6D6KWXfirst_time_customer
39EPWZVMNP6D6KWXrepeat_customer
49EPWZVMNP6D6KWXfrequent_visitor
59EPWZVMNP6D6KWXloyal_customer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:45:05