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

如何检测Pandas DataFrame中消费者此前是否有过0推荐记录

Pandas统计客户历史0分推荐记录实现方法

请先确保你的DataFrame已经按照记录产生的时间先后升序排列,否则「当前记录之前」的统计逻辑会出错。如果数据包含记录时间字段,建议先执行df = df.sort_values(['customer_id', '记录时间字段名'])排序后再做计算。

核心逻辑:按客户分组后,先标记每条记录是否为0分推荐,对标记序列做累计求和得到截止当前行的0分总次数,再把累计结果下移一行得到当前行之前的历史0分次数,最后转换为0/1格式即可。

完整可运行代码如下:

import pandas as pd

# 构造测试数据集
data = {'customer_id': [1, 2, 1, 3], 'recommend': [0, 1, 1, 0]}
df = pd.DataFrame.from_dict(data)

# 计算past列
df['past'] = (
    df['recommend'].eq(0)
    .groupby(df['customer_id'])
    .apply(lambda x: x.cumsum().shift(1))
    .fillna(0)
    .astype(int)
)

print(df)

运行输出结果和你预期的完全一致:

customer_id  recommend  past
0            1          0     0
1            2          1     0
2            1          1     1
3            3          0     0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:24:04