python-3.x - 按类别在 Python 数据框中获取随机样本

标签 python-3.x pandas

我有一个这样的示例列表:

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/

相关文章:

python - 如何改变列表中的每三个元素?

python - 何时使用反向内置而不是列表切片

python-3.x - 如何矢量化使用基于其他列的值创建新列?

python - Pandas:将 CSV 文件中本地时间不明确的数据框设置为区域设置

python - 合并 pandas 列中的字符串替换

python - 如何在 Python 中应用将多个数字拆分到数据框中的列字段的函数?

python - 已成功安装 Python 3.1.2,但当使用命令检查它是否安装在我的电脑上时,它无法识别命令集

python - 如何将 Python 脚本链接到 React Native 应用程序

python - 每月为与客户关联的所有行分配正确的资格 - Python/Pandas

python - Pandas :如何将具有多个值的单元格转换为多行?