如何按Class与Ecosystem多条件随机筛选DataFrame指定行数?
多条件随机抽样数据集问题
我拥有两个各含20行的数据集,希望按以下条件从每个数据集中随机选取10行:
df1 抽样要求
- 8个Mammal(哺乳动物)
- 2个Reptile(爬行动物)
- 同时满足:6个Terrestrial(陆地生态系统)、4个Aquatic(水生生态系统)
df2 抽样要求
- 4个Mammal(哺乳动物)
- 2个Birds(鸟类)
- 3个Reptile(爬行动物)
- 1个Fish(鱼类)
- 同时满足:6个Terrestrial(陆地生态系统)、4个Aquatic(水生生态系统)
我尝试过以下代码:
df1.query("Class = Mammal").sample(n=8) df1.query("Class = Reptile").sample(n=2)
这类方案仅能满足Class的筛选要求,但无法加入Ecosystem的限制条件。我需要同时满足Class和Ecosystem的双重分组要求,认为可以通过对Class和Ecosystem两列使用groupby函数实现,但尚未找到具体方法。
示例数据
| Common name | Class | Ecosystem |
|---|---|---|
| Lion | Mammal | Terrestrial |
| Humpback whale | Mammal | Aquatic |
| Crocodile | Reptile | Aquatic |
内容的提问来源于stack exchange,提问作者redleesy
相关产品推荐
相关产品推荐

