Python中如何生成多组数组并作为列存储到DataFrame中
实现代码
import pandas as pd import numpy as np # 定义要生成的样本总数 n_samples = 1000 all_predictors = [] # 外层循环控制生成1000组数据 for _ in range(n_samples): single_predictor = [] per = list(range(1,13)) for p in per: predictor_val = phi.iloc[0].values + phi.iloc[1].values * r_train[-1] + phi.iloc[2].values *r_train[-2] + phi.iloc[3].values * r_train[-3] + npr.choice(residuals,size=1,replace=True) single_predictor.append(predictor_val[0]) # 把单次生成的12个值存入总列表 all_predictors.append(single_predictor) # 转置为12行1000列后转DataFrame result_df = pd.DataFrame(np.array(all_predictors).T) # 可验证形状是否符合预期,输出应为(12, 1000) print(result_df.shape)
逻辑说明
- 外层新增1000次循环,每次循环生成1组长度为12的predictor数组
- 放弃原代码中循环内使用
np.append的写法,改为先存为Python列表,最后一次性转为numpy数组,大幅提升循环运行效率 - 生成的1000×12的数组转置后得到12行1000列的结构,直接转为DataFrame即为需求结果
内容的提问来源于stack exchange,提问作者Philippe Rosato
相关产品推荐
相关产品推荐

