从熊猫数据框中随机删除n组

时间:2020-05-14 09:40:54

标签: python pandas random drop

我有一个15466行×125列的数据框。 “主题ID”列(15466行)包含400个唯一ID,其中每个ID大约出现40次。我想从我的数据框(cca 400行)中随机删除10个主题。到目前为止,我已经尝试过:

trial = df.groupby(['Subject_ID']).apply(lambda x: x.sample(10))

但是我意识到此功能从每个Subject_ID中随机抽取10行,而不是从10个gropups / Subject_ID中获取

1 个答案:

答案 0 :(得分:2)

您可以将Series.uniquenumpy.random.choice一起使用以随机选择10个ID,然后使用isin进行布尔索引以将其从DataFrame中过滤掉:

import numpy as np

exclude_ids = np.random.choice(df['Subject_ID'].unique(), 10)

df_new = df[~df['Subject_ID'].isin(exclude_ids)]