我可以a从每个分组中进行采样b,如下所示。
df = pd.DataFrame({'a': [10,20,30,40,50,60,70],
'b': [1,1,1,0,0,0,0]})
df.groupby('b', as_index=False)['a'].apply(lambda x: x.sample(n=3))
给出:
b a
0 3 40
4 50
5 60
1 0 10
2 30
1 20
但是,如果我想对n元素进行采样,则n必须设置为最多一个组中的元素数量(如果我们想要的话replace=False)
是否有一种干净的方法来对n组中的元素进行采样,最多可达最大数量的项目?
例如,在给定的 DataFrame: in 中b,存在三个值为 的项目1。
如果我愿意df.groupby('b').apply(lambda x: x.sample(n=4)),(注意n=4)这就会破裂。
对每组进行最大采样的干净方法是什么?
慕标5832272
SMILET
相关分类