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

如何基于现有列自动随机生成超100个新数据列?(Python/Numpy/Pandas)

随机组合列生成新数据的自动化实现方法

基于Pandas+Numpy的解决方案

可以用Pandas结合Numpy快速实现无固定规则的随机列组合,自动生成大量新数据列,完全满足生成100+新列的需求。

以下是可直接运行的代码示例:

import pandas as pd
import numpy as np

# 替换为你的原始数据(示例中模拟5列随机数据)
np.random.seed(42)  # 固定随机种子,方便复现结果
df = pd.DataFrame(np.random.randn(100, 5), columns=[f"col{i}" for i in range(1, 6)])

# 设置要生成的新列数量
target_new_cols = 100

# 定义可选的列间运算(可根据需求自行扩展)
available_ops = [
    lambda x, y: x + y,
    lambda x, y: x - y,
    lambda x, y: x * y,
    lambda x, y: x / (y + 1e-8),  # 加极小值避免除零错误
    lambda x, y: np.maximum(x, y),
    lambda x, y: np.minimum(x, y),
    lambda x, y: np.sqrt(np.abs(x)) + np.sqrt(np.abs(y))
]

# 批量生成新列
for idx in range(target_new_cols):
    # 随机挑选两个不同的原始列
    col_a, col_b = np.random.choice(df.columns, size=2, replace=False)
    # 随机选择一种运算
    selected_op = np.random.choice(available_ops)
    # 计算并添加新列
    new_col_name = f"rand_col_{idx+1}"
    df[new_col_name] = selected_op(df[col_a], df[col_b])

# 验证结果:原始5列+100新列,共105列
print(df.shape)

核心要点说明

  • 随机性可控:通过np.random.seed()固定随机逻辑,结果可复现;若需要每次生成不同组合,删除该行即可。
  • 运算扩展:可以自由添加更多运算(如幂运算、对数、三角函数等),进一步丰富新列的多样性。
  • 单列变换支持:如果需要基于单列生成新列,可修改逻辑,随机挑选单列并应用单变量运算(如lambda x: x**2、lambda x: np.log(np.abs(x)+1))。

内容的提问来源于stack exchange,提问作者방준호

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:13:12