【发布时间】:2021-03-23 12:53:17
【问题描述】:
我有以下输入表(y):
| parameter1 | parameter2 |
|---|---|
| 1 | 12 |
| 2 | 23 |
| 3 | 66 |
| 4 | 98 |
| 5 | 90 |
| 6 | 14 |
| 7 | 7 |
| 8 | 56 |
| 9 | 1 |
我想随机分配从 A1 到 A9 的值。输出表应如下所示:
| parameter1 | parameter2 | parameter3 |
|---|---|---|
| 1 | 12 | A5 |
| 2 | 23 | A2 |
| 3 | 66 | A4 |
| 4 | 98 | A8 |
| 5 | 90 | A3 |
| 6 | 14 | A7 |
| 7 | 7 | A1 |
| 8 | 56 | A9 |
| 9 | 1 | A6 |
n = 9
TGn = round(len(y)/n)
idx = set(y.index // TGn)
y = y.apply(lambda x: x.sample(frac=1,random_state=1234)).reset_index(drop=True)
treatment_groups = [f"A{i}" for i in range(1, n+1)]
y['groupAfterRandomization'] = (y.index // TGn).map(dict(zip(idx, treatment_groups)))
我无法填充它打印为 NaN 的第一行值。我该如何解决这个问题?
【问题讨论】:
-
您想根据
parameter1中的值随机分配A1到A9的值吗? -
您的代码在使用
parameter1列排序后看起来很好。 -
是的,基于参数1
标签: python pandas random randomized-algorithm