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

如何对DataFrame按条件抽样 使布尔型target列的0和1样本量近似均衡

实现方法

你可以先按target取值拆分数据集,对两类样本分别处理后再合并,具体代码如下:

步骤1:拆分正负样本

# 保留target=0的全部样本
df_target0 = df[df['target'] == 0]
# 从target=1的样本中随机抽取6000条,random_state可固定随机种子保证结果可复现
df_target1 = df[df['target'] == 1].sample(n=6000, random_state=42)

步骤2:合并得到目标数据集

import pandas as pd
new_df = pd.concat([df_target0, df_target1], axis=0)

如果需要打乱合并后的样本顺序,避免同类样本集中排布,可以增加打乱操作:

# frac=1代表抽取全部样本即打乱顺序,reset_index重置索引避免重复
new_df = new_df.sample(frac=1, random_state=42).reset_index(drop=True)

参数说明

  • n:指定抽样的样本数量,这里对应你需要的6000条target=1的样本
  • random_state:随机种子参数,填写固定整数时每次运行抽样结果一致,不需要复现结果可以删除该参数
  • reset_index(drop=True):重置合并后的数据集索引,避免出现重复的索引值,不需要保留原索引的情况下建议添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:00:04