我有一个这样的示例列表:
Category| Item
--------|-------
Animal | Fish
Animal | Cat
... |
Food | Fish
Food | Cake
... |
etc...
我想从每个类别中随机抽取 10 个项目,以便剩余的数据框只有这些记录。
我已经尝试过
df.sample()
,但它只是为我提供了全面的示例。我可以通过
df.iterrows()
做到这一点,但我希望有一个更简单的解决方案。
最佳答案
您必须使用 groupby
方法告诉 Pandas 您要按类别分组。
df.groupby('category')['item'].apply(lambda s: s.sample(10))
如果 sample 中的物品少于十件,但不想更换 sample ,则可以执行此操作。
df.groupby('category')['item'].apply(lambda s: s.sample(min(len(s), 10)))
关于python-3.x - 按类别在 Python 数据框中获取随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41345289/