You need to enable JavaScript to run this app. 如何使用pandas统计各机构独有的客户数量
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pandas统计各机构独有的客户数量

实现思路

先筛选出仅在单一机构出现过的客户,再按机构统计这类客户的去重数量即可。

完整代码实现

import pandas as pd

# 构造测试DataFrame
data = {
    "month": ["01", "01", "01", "02", "03", "06", "04", "03", "04", "04"],
    "organization": ["ABC", "ABC", "ABC", "XYZ", "XYZ", "XYZ", "XYZ", "DEF", "DEF", "MNO"],
    "customer_id": ["001", "001", "002", "003", "002", "006", "007", "004", "005", "004"]
}
df = pd.DataFrame(data)

# 1. 统计每个客户关联的不同机构数量
cust_org_count = df.groupby("customer_id")["organization"].nunique().reset_index(name="org_count")

# 2. 筛选出仅在1家机构出现的独有客户
only_one_org_cust = cust_org_count[cust_org_count["org_count"] == 1]["customer_id"]

# 3. 按机构统计独有客户的去重数量
result = df[df["customer_id"].isin(only_one_org_cust)] \
    .drop_duplicates(["organization", "customer_id"]) \
    .groupby("organization", as_index=False)["customer_id"] \
    .count() \
    .rename(columns={"customer_id": "unique_customer_count"})

print(result)

输出结果

organization  unique_customer_count
0          ABC                      1
1          DEF                      1
2          XYZ                      3

和你给出的预期结果完全一致。如果需要保留无独有客户的机构(比如示例中的MNO,统计值为0),在分组后补充重索引逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 01:15:03