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

如何基于分群用户计数优先级为DataFrame创建Segment Priority新属性列

实现方案(Python Pandas环境)

核心思路

  • 第一步:统计所有segment对应的去重客户数量,按数量从小到大给每个segment分配全局权重,数量越少权重值越小
  • 第二步:按customerid分组,对该客户下所有segment的权重做升序排名,得到的结果就是Segment Priority

完整代码

import pandas as pd

# 构造原始DataFrame
data = {
    "customerid": [1,1,1,1,2,2,2,3,3,4,5],
    "segment": ["active","viewed","addtocart","transacted","active","viewed","addtocart","active","viewed","active","active"]
}
df = pd.DataFrame(data)

# 1. 计算每个segment对应的去重客户数,生成权重映射
seg_unique_cnt = df.groupby("segment")["customerid"].nunique().sort_values()
seg_weight_map = {seg: idx+1 for idx, seg in enumerate(seg_unique_cnt.index)}
df["temp_weight"] = df["segment"].map(seg_weight_map)

# 2. 按客户分组生成优先级排名
df["Segment Priority"] = df.groupby("customerid")["temp_weight"].rank(method="first").astype(int)

# 删除临时列得到最终结果
df = df.drop("temp_weight", axis=1)

print(df)

输出验证

运行上述代码后得到的结果和预期输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:15:07