我正在使用这样的数据帧:
group period
A 20130101
A 20130201
. .
E 20130901
E 20131001
假设我有100个不同的组和10个可能的日期,它们是这样分布的:[.1,.05,.2,.05,.1,.1,.2,.05,.05,.1]
。我需要为每组获得一个样本,因此最终样本的10%来自第一阶段,5%来自第二阶段,20%来自第三阶段,依此类推。我设法为每一组随机抽取了一个样本,但它有很大的偏差,如下所示:
fn = lambda obj: obj.loc[np.random.choice(obj.index, 1, replace=False),:]
dfrd = df[['group','period']].groupby('group', as_index=False).apply(fn)
dfrd.index = [index[1] for index in dfrd.index]
那么,有没有办法做一些类似的事情,但是分层的呢?谢谢
您可以从
np.random.choice
使用p
参数:相关问题 更多 >
编程相关推荐