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

Pandas比对两年DataFrame唯一客户ID 计算门店客户流失数量

解决方法

你原有代码统计的是订单维度的匹配结果,同一个客户多次下单会被重复计数,无法反映真实唯一客户的流失情况。要基于唯一客户统计流失数,可按以下步骤实现:

步骤1:提取两年的唯一客户ID

# 分别提取2017、2018年的唯一客户ID集合
unique_cus_2017 = df[df['OrderYear'] == 2017]['Customer ID'].unique()
unique_cus_2018 = df[df['OrderYear'] == 2018]['Customer ID'].unique()

步骤2:计算流失客户数量

流失客户定义为「2017年有消费记录、2018年无任何消费记录的唯一客户」,有两种常用实现方式:

方式1:用pandas的isin方法判断
# 对2017年唯一客户判断是否在2018年客户列表中,取反求和即为流失数
churn_count = sum(~pd.Series(unique_cus_2017).isin(unique_cus_2018))
print(f"2017-2018年流失客户数量:{churn_count}")
方式2:用集合求差集(更直观)
set_2017 = set(unique_cus_2017)
set_2018 = set(unique_cus_2018)
# 差集即为仅在2017年出现的客户,也就是流失客户
churn_customers = set_2017 - set_2018
churn_count = len(churn_customers)
print(f"2017-2018年流失客户数量:{churn_count}")

如果需要额外计算客户留存率,可以加一行代码:

retention_rate = len(set_2017 & set_2018) / len(set_2017)
print(f"2017年客户在2018年的留存率:{retention_rate:.2%}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:06:03