首页 > 解决方案 > 根据权重百分比在数据框中随机分配值

问题描述

例如我有以下数据框

ID     A/B Test
1234
3456
6789
3987

我想根据 50% 的分布为 A/B 测试列随机分配一个“Y”或“N”。换句话说,我想拆分 df 并确保 50% 的记录有“Y”和 50% 的“N”,但这些值应该随机分配。

输出数据框:

ID     A/B Test
1234   Y
3456   N
6789   N
3987   Y

请帮忙!

谢谢

标签: pythonpandasnumpydataframe

解决方案


您可以使用np.random.choice

df['A/B Test'] = np.random.choice(['Y','N'], size=len(df))

请注意,如果您的数据足够长,则此方法有效,并且您将拥有大致相同数量的YN。也就是说,您可能有 9995Y和 10005 N


推荐阅读