我有一个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中获取
答案 0 :(得分:2)
您可以将Series.unique
与numpy.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)]