【发布时间】:2016-04-22 17:07:19
【问题描述】:
从这个简单的数据框df开始:
df = pd.DataFrame({'c':[1,1,2,2,2,2,3,3,3], 'n':[1,2,3,4,5,6,7,8,9], 'N':[1,1,2,2,2,2,2,2,2]})
我正在尝试为每个c 从n 中选择N 随机值。到目前为止,我设法分组并获得了一个元素/组:
sample = df.groupby('c').apply(lambda x :x.iloc[np.random.randint(0, len(x))])
返回:
N c n
c
1 1 1 2
2 2 2 4
3 2 3 8
我的预期输出是这样的:
N c n
c
1 1 1 2
2 2 2 4
2 2 2 3
3 2 3 8
3 2 3 7
因此,根据N 列,从 c=1 中获取 1 个样本,为 c=2 和 c=3 获取 2 个样本。
【问题讨论】:
-
您是否假设
c的每个唯一值都只有一个N唯一值? -
@BrenBarn 是的,就是这样。
标签: python numpy pandas random