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

如何为含客户ID的dataframe创建随机均衡赋值0/1/2的group_user新列

实现DataFrame均衡随机分组的方法

你可以通过Python的numpy库快速实现需求,以下是两种常用实现方案:

方案1:简洁随机抽样(适合绝大多数场景)

直接调用numpy.random.choice方法,指定三个取值的概率均为1/3即可,代码如下:

import pandas as pd
import numpy as np

# 假设你已提前构造好包含ID列的DataFrame,变量名为df
# 若需要固定随机结果方便复现,可加下行设置随机种子,不需要可删除
np.random.seed(42)

# 核心逻辑:生成0、1、2的随机序列,比例均衡
df['group_user'] = np.random.choice([0, 1, 2], size=len(df), p=[1/3, 1/3, 1/3])

你可以通过df['group_user'].value_counts()验证分组占比,三个取值的样本量差异最多为1,符合均衡要求。

方案2:精准均等分配(对分组均衡度要求极高时使用)

如果你的样本量是3的整倍数,或者要求分组样本量差异必须控制在最小范围,可以用洗牌法实现完全均等分配:

import pandas as pd
import random

# 生成分组标签
label_list = [0, 1, 2] * (len(df) // 3)
# 处理样本量无法被3整除的剩余部分
remain_num = len(df) % 3
if remain_num > 0:
    label_list += random.sample([0, 1, 2], remain_num)
# 打乱标签顺序
random.shuffle(label_list)
# 赋值到新列
df['group_user'] = label_list

两种方案最终输出的格式都和你给出的示例一致:

IDgroup_user
3411
1270
3892

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:15:01