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

如何从含二类标签的112k行大型数据集中抽取10k行均衡样本

均衡抽取10k行样本的实现方案

这事儿太好办了!用Python的pandas库就能快速实现这种均衡抽样需求,我给你拆解成清晰的步骤和可直接用的代码示例:

核心思路

先把原始数据按目标列(就是那个取值为1/0的列)分成两组,再从每组里各抽5k行,最后合并成均衡的10k行样本——完美保持1:1的分布比例。

具体步骤(以Python pandas为例)

  • 首先导入必备的pandas库:
    import pandas as pd
    
  • 读取你的原始数据集(替换成你实际的文件路径和格式,比如excel就用pd.read_excel):
    # 示例:读取csv格式的原始数据
    df = pd.read_csv("your_raw_dataset.csv")
    
  • 按目标列拆分数据(这里假设目标列名为is_true,一定要替换成你数据集里的实际列名):
    # 筛选出取值为1的所有行
    df_true = df[df['is_true'] == 1]
    # 筛选出取值为0的所有行
    df_false = df[df['is_true'] == 0]
    
  • 从每组随机抽取5000行(random_state用来固定抽样结果,保证每次跑代码都得到一样的样本,可选参数):
    sample_true = df_true.sample(n=5000, random_state=42)
    sample_false = df_false.sample(n=5000, random_state=42)
    
  • 合并两个抽样子集,还可以打乱顺序避免出现“先全1再全0”的分组痕迹:
    # 合并两个抽样样本
    balanced_sample = pd.concat([sample_true, sample_false])
    # 打乱行顺序并重置索引
    balanced_sample = balanced_sample.sample(frac=1, random_state=42).reset_index(drop=True)
    
  • 最后把均衡抽样后的数据集保存下来:
    # 保存为csv,也可以换成你需要的格式
    balanced_sample.to_csv("balanced_10k_sample.csv", index=False)
    

额外小提示

  • 如果你的数据集不用pandas处理(比如用numpy),思路完全一致:先拆分两组,再分别随机选取索引抽样,最后合并即可。
  • random_state可以换成任意整数,或者直接去掉——去掉的话每次运行代码会得到不同的抽样结果,按需选择就行。
  • 要是原始数据里的目标列值不是1/0而是True/False,把代码里的==1换成==True,==0换成==False就ok啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:52:30