我正在做一个实验设计,我需要通过预先存在的分组将数据框 df 按百分比拆分为对照组和治疗组。
这是数据框df:
df.head()
customer_id | Group | many other columns
ABC 1
CDE 1
BHF 2
NID 1
WKL 2
SDI 2
pd.pivot_table(df,index=['Group'],values=["customer_id"],aggfunc=lambda x: len(x.unique()))
Group 1 : 55394
Group 2 : 34889
现在我需要在 df 中添加一个标记为“Flag”的列。对于第 1 组,我想随机分配 50% 的“控制”和 50% 的“测试”。对于第 2 组,我想随机分配 40% 的“控制”和 60% 的“测试”。
我正在寻找的输出:
customer_id | Group | many other columns | Flag
ABC 1 Test
CDE 1 Control
BHF 2 Test
NID 1 Test
WKL 2 Control
SDI 2 Test