单击groupby并根据列选择可变数量的随机值

2024-04-16 12:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

从这个简单的数据帧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]})

我试图从n中为每个c选择N随机值。到目前为止,我成功地通过groupby获得了一个元素/组:

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个样本。你知道吗


Tags: 数据samplelambda元素dataframedflennp