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

如何按客户规模将字典中的销售代表平均分配至DataFrame列?

均匀分配销售代表到对应规模客户的解决方案

要实现按客户规模分组,将对应组的销售代表均匀分配(使每个销售负责的同规模客户数尽可能一致),可以通过groupby结合循环迭代器来实现,替代直接用map的方式。

步骤1:定义销售代表分组字典

首先确保你的销售代表字典格式正确,键为客户规模,值为对应销售代表列表:

sales_reps = {
    'Large': ['Jackson', 'Stevens', 'Miller'],
    'Medium': ['James', 'Samuels', 'Shandler'],
    'Small': ['Fast', 'Shorter']
}

步骤2:编写分配函数并应用到分组数据

使用itertools.cycle创建销售代表的循环迭代器,再通过groupby对每个客户规模组单独分配:

import pandas as pd
from itertools import cycle

def assign_sales_rep(group):
    # 获取当前分组的客户规模
    client_size = group['Client Size'].iloc[0]
    # 创建对应销售代表的循环迭代器
    rep_cycle = cycle(sales_reps[client_size])
    # 为分组内每一行分配销售代表
    group['Sales Rep'] = [next(rep_cycle) for _ in range(len(group))]
    return group

# 对DataFrame按Client Size分组后应用分配函数
df = df.groupby('Client Size', group_keys=False).apply(assign_sales_rep)

步骤3:验证分配结果

可以通过统计每个规模下各销售的客户数量,确认分配是否均匀:

for size in sales_reps.keys():
    print(f"--- {size} 客户分配统计 ---")
    print(df[df['Client Size'] == size]['Sales Rep'].value_counts())

输出结果中,同规模下每个销售的客户数要么完全相等,要么仅相差1(当客户总数无法被销售人数整除时),符合均匀分配的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:55:11