如何从Pandas数据框中抽取与已有样本无重叠的新样本?
从原Pandas数据框抽取与已有样本无重叠的1000条观测值
核心思路是先排除已经抽过的200条数据,再从剩余部分随机抽样。具体步骤如下:
方法一:利用索引筛选(适用于索引唯一的情况)
如果原数据框data的索引是每条观测的唯一标识,直接通过索引排除已抽样部分:
- 获取已抽取的200条数据的索引:
sampled_indices = sample_data.index - 从原数据中筛选出不在上述索引范围内的剩余数据:
remaining_data = data[~data.index.isin(sampled_indices)] - 从剩余数据中随机抽取1000条:
new_sample = remaining_data.sample(n=1000)
方法二:利用唯一ID列筛选(适用于索引不唯一的情况)
如果原数据的索引存在重复,可借助数据内的唯一标识列(比如user_id、record_id这类字段)来区分:
- 提取已抽样数据里的唯一ID值:
sampled_ids = sample_data['唯一ID列名'].unique() - 筛选出原数据中不包含这些ID的剩余数据:
remaining_data = data[~data['唯一ID列名'].isin(sampled_ids)] - 最后从剩余数据中抽取1000条:
new_sample = remaining_data.sample(n=1000)
通过以上方法就能保证新抽取的1000条观测值和之前的200条完全无重叠。
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

