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

如何为Pandas DataFrame生成符合指定随机条件的col3列?

解决方案

我们可以通过按col1分组,为每个组生成符合要求的随机值并打乱顺序来实现需求。具体逻辑如下:

  • 每个col1分组包含14条记录,需为其中一半保留col2的原值,另一半使用原值的反转(0变1,1变0)
  • 将生成的混合列表随机打乱,确保分配的随机性
  • 将处理后的结果赋值给新列col3

完整代码如下:

import pandas as pd
import numpy as np

# 创建原始DataFrame
ds = {'col1' : [1]*14 + [2]*14,
      'col2' : [0]*14 + [1]*14}
data = pd.DataFrame(data=ds)

# 定义生成col3的分组处理函数
def generate_col3(group):
    group_size = len(group)
    original_val = group['col2'].iloc[0]
    # 生成包含一半原值和一半反转值的列表
    col3_values = [original_val]*(group_size//2) + [1 - original_val]*(group_size//2)
    # 随机打乱列表顺序
    np.random.shuffle(col3_values)
    group['col3'] = col3_values
    return group

# 应用函数到每个分组
data = data.groupby('col1').apply(generate_col3)

# 输出结果查看
print(data)

执行后col3列会满足要求:

  • 当col1=1时,7条记录为0,7条为1,随机分布
  • 当col1=2时,7条记录为1,7条为0,随机分布

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:53:10