如何删除Pandas DataFrame部分行以实现数据集平衡?
删除Pandas数据框中指定数量标签为0的行
需求说明
现有通过Pandas读取的CSV数据,结构如下:
file_path, label - -
标签仅包含0和1,当前频数统计结果:
data["label"].value_counts() 0 197664 1 78444
需要删除20000条标签为0的行,使0的频数变为195664,最终统计结果如下:
data["label"].value_counts() 0 195664 1 78444
实现步骤
- 第一步:筛选出所有标签为0的行的索引
zero_indices = data[data['label'] == 0].index
- 第二步:从这些索引中随机选取20000个(若需固定随机结果,可添加
random_state参数)
to_drop = zero_indices.sample(n=20000, random_state=42)
- 第三步:删除选中的行
data = data.drop(to_drop)
验证结果
执行以下代码确认频数是否符合预期:
print(data['label'].value_counts())
内容的提问来源于stack exchange,提问作者Omar
相关产品推荐
相关产品推荐

