【发布时间】:2021-03-12 11:33:09
【问题描述】:
给定 16 个颜色分布如下的球,
In[1]: df = pd.DataFrame([10,5,1],index=['red', 'green','blue'], columns=['balls'])
In[2]: df
Out[2]
balls
red 10
green 5
blue 1
我想提取一个随机子集,例如 10 个球,例如 7 个红色、2 个绿色和 1 个蓝色。我不能使用 df.sample(),因为这只会给我一种颜色,可能由“球”加权,除非我把它放在一个循环中并同时提取 1 个球并更新剩余的球数。然而,这非常慢,当我们有 100.000 个具有 500 种颜色的球时,我们想随机提取其中的 80.000 个。 我可以列个清单,
In[3]: list = ['blue', 'blue', 'blue', ..., 'green', 'green', ..., 'blue']
并取 0 到 len(list) 之间的 10 个随机整数,但这似乎有点麻烦。 有没有简单快捷的方法来解决这个问题?
【问题讨论】: