首页 > 解决方案 > 如何在熊猫中获取 x% 的数据集

问题描述

我有一个几乎有 3000k 行的数据集。这些是数据集的标签。

在此处输入图像描述

现在我想获得每个标签的 10% 用于早期分析和算法。这是一个粗略的估计。 在此处输入图像描述

当然,我想在其中打乱行,这意味着我不想这样做,df[df['Label']==BENIGN].iloc[0:235909,:]因为这将获得前 235k 行,但我想从中打乱行。怎么做?

标签: pythonpandas

解决方案


尝试sample

df.groupby('Label').sample(frac=0.1)

编辑:要为一个类采样不同的分数:

df.groupby('Label').apply(lambda x: x.sample(frac=0.01 if x.Label.iloc[0]=='Benign' else 0.1)

推荐阅读