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

如何用循环基于现有DataFrame生成随机化新DataFrame

简化多列随机抽样生成新DataFrame的代码

你需要实现的是对原DataFrame的每一列独立执行有放回随机抽样,生成指定行数的新数据集——每列保留原始元素池,但打破列间的原有关联。

原代码的冗余问题

当列数较多(比如24列)时,手动逐个定义列列表、逐个生成抽样列的写法会导致大量重复代码,用循环可以彻底解决这个问题。

简化后的代码

import pandas as pd
import random

# 假设df是你的原始DataFrame
sample_size = 2000
df_new = pd.DataFrame()

# 遍历原DataFrame的所有列,批量生成抽样数据
for col in df.columns:
    df_new[col] = random.choices(df[col].tolist(), k=sample_size)

代码说明

  • 直接通过df.columns遍历所有列名,无需手动创建lst1/lst2这类冗余变量
  • 循环中自动对每一列执行有放回抽样,结果直接赋值给新DataFrame的对应列
  • 仅需修改sample_size即可调整新数据集的行数,适配任意列数的原始DataFrame

可选的Pandas风格优化

如果想用更简洁的Pandas原生写法,也可以用apply一行实现:

df_new = df.apply(lambda col: random.choices(col.tolist(), k=sample_size), axis=0).T

axis=0指定按列处理,最后用.T转置回常规的行列结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:10:14