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

如何按限额均衡轮询将销售人员分配至门店DataFrame?

销售人员均衡轮询分配实现方案

核心思路

按照需求的「先对齐限额再轮询」逻辑,步骤如下:

  • 先将销售人员按分配限额从高到低排序,便于逐步对齐配额
  • 每次优先让当前配额最高的销售人员,分配至与当前次高配额平齐的数量,再联合已对齐的人员一起轮询,逐步纳入下一个配额更低的人员
  • 当某销售人员配额耗尽时,自动退出轮询,剩余人员继续按规则分配,直到所有门店分配完成或所有配额用完

代码实现

1. 模拟测试数据

import pandas as pd

# 销售人员及配额表
df_A = pd.DataFrame({
    'Salesperson': ['Dd', 'Ee', 'Aa', 'Bb', 'Cc'],
    'Quota': [15, 12, 10, 8, 5]
})

# 100家待分配门店
df_B = pd.DataFrame({'Store': range(1, 101)})

2. 分配逻辑实现

# 按配额降序排序,重置索引方便操作
df_sorted = df_A.sort_values('Quota', ascending=False).reset_index(drop=True)
remaining_quota = df_sorted['Quota'].tolist()
remaining_stores = len(df_B)
assigned_list = []

while remaining_stores > 0 and sum(remaining_quota) > 0:
    # 筛选当前还有配额的销售人员索引
    active_indices = [i for i, q in enumerate(remaining_quota) if q > 0]
    if not active_indices:
        break
    
    # 获取当前活跃销售中的最低配额值
    min_active_q = min([remaining_quota[i] for i in active_indices])
    # 计算本轮可分配的批次大小:取对齐到最低配额的次数,或剩余门店能支撑的整轮数
    batch = min(min_active_q, remaining_stores // len(active_indices))
    
    if batch == 0:
        # 剩余门店不足以完成一轮全部分配,按顺序逐个分配直到门店耗尽
        for idx in active_indices:
            if remaining_stores <= 0:
                break
            assign_num = min(remaining_quota[idx], remaining_stores)
            assigned_list.extend([df_sorted.loc[idx, 'Salesperson']] * assign_num)
            remaining_stores -= assign_num
            remaining_quota[idx] = 0
        break
    
    # 执行本轮批次分配
    for idx in active_indices:
        assigned_list.extend([df_sorted.loc[idx, 'Salesperson']] * batch)
        remaining_quota[idx] -= batch
        remaining_stores -= batch

# 将分配结果赋值给df_B的Assigned列
df_B['Assigned'] = assigned_list[:len(df_B)]

逻辑说明

  • 初始排序后,先处理配额最高的Dd,先分配3次(15-12=3),让Dd的剩余配额和Ee平齐为12
  • 接着Dd和Ee一起轮询,每次各分配1次,直到剩余配额降到和下一个Aa的10平齐(需要轮询2次)
  • 之后Dd、Ee、Aa一起轮询,直到配额降到Bb的8,以此类推
  • 当某销售人员配额耗尽后,自动从轮询列表中剔除,剩余人员继续按规则分配,直到所有门店分配完成

内容的提问来源于stack exchange,提问作者Bruce Wayne 0005

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:15:42