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

如何在pandas dataframe中随机选取X行填充1其余行填0

Pandas DataFrame随机指定行数填充值实现方法

首先构造题目要求的示例测试数据:

import pandas as pd
import numpy as np

# 构造10行的测试DataFrame
df = pd.DataFrame({
    'col1': ['a','b','c','d','e','f','g','h','i','j']
})

实现方法1:pandas sample抽样赋值

思路为先初始化新增列全为0,再随机抽取指定行数的索引,将对应位置的值修改为1:

# 指定需要填充为1的行数
fill_one_count = 4
# 初始化col2所有值为0
df['col2'] = 0
# 随机抽取指定行数,将对应col2的值修改为1
df.loc[df.sample(n=fill_one_count).index, 'col2'] = 1

如果需要固定随机结果方便复现,可以给sample方法添加random_state参数,例如df.sample(n=fill_one_count, random_state=42)。

实现方法2:numpy生成乱序数组直接赋值

思路为先构造包含指定数量1和0的数组,打乱顺序后直接赋值给新增列:

fill_one_count = 4
# 生成包含4个1、6个0的数组,打乱顺序后赋值给col2
df['col2'] = np.random.permutation([1]*fill_one_count + [0]*(len(df)-fill_one_count))

如果要固定随机结果,在执行上述代码前添加np.random.seed(42)即可。

两种方法均可以稳定实现需求,运行后输出df即可得到符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:54:11