You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从DataFrame中无重复随机抽取6个固定大小子样本

原代码问题分析
  • 你已经通过df.sample()得到了乱序的抽样结果df_,但后续分片操作仍然调用了原始有序的df做索引切割,得到的自然是原顺序的分片
  • 需求是6个各100条的子样本,总抽样量应为600,原代码中df.sample(n=6000)的参数不符合需求,且循环中range的上界误用了原始df的长度,会导致分片大小不符合预期
修正后实现代码
# 1. 计算总抽样量:6个子样本 × 每个100条
total_count = 6 * 100
# 2. 从原df无重复随机抽取足量数据,得到乱序的抽样结果
sampled_all = df.sample(n=total_count, replace=False)
# replace=False为默认值,显式标注更清晰;可加random_state参数固定随机结果方便复现

# 3. 按固定大小切割乱序样本,得到6个无重复的随机子样本
subsample_size = 100
chunks = []
for i in range(0, total_count, subsample_size):
    chunks.append(sampled_all.iloc[i:i+subsample_size])

# 调用示例:第一个子样本为 chunks[0],第二个为chunks[1],以此类推
结果校验(可选)

如果需要确认结果符合要求,可运行以下代码校验:

# 校验每个子样本大小是否为100
for i, subsample in enumerate(chunks):
    assert len(subsample) == 100, f"子样本{i}大小不符合要求"
print("所有子样本大小校验通过")

# 校验所有子样本无重复行
all_index = []
for s in chunks:
    all_index.extend(s.index.tolist())
assert len(set(all_index)) == 600, "子样本存在重复数据"
print("所有子样本无重复校验通过")

内容的提问来源于stack exchange,提问作者Ankita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:36:00