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

如何基于每行均值和标准差生成1000组随机变量及分位列?

批量生成随机值列与五分位秩列

原始DataFrame结构

CityMeanSD
Newcastle600.81
Liverpool620.91
Cardiff650.87
Glasgow590.86

需求说明

基于上述DataFrame,需循环执行以下两步操作1000次,最终添加2000列:

  • 生成以n1、n2…n1000命名的随机值列,每列数据由对应行的Mean为均值、SD为标准差的正态分布生成
  • 生成对应命名为q1、q2…q1000的五分位秩列,基于同批次的随机值列做五分位分割,得到0-4的整数秩标签

实现代码

import numpy as np
import pandas as pd

# 假设原始数据已存入df变量
for i in range(1, 1001):
    # 生成随机值列
    col_n = f'n{i}'
    df[col_n] = np.random.normal(df['Mean'], df['SD'])
    # 生成对应五分位秩列
    col_q = f'q{i}'
    df[col_q] = pd.qcut(df[col_n], 5, labels=False)

代码说明

  • 用for循环遍历1到1000的整数,动态生成每批次的列名
  • np.random.normal()按每行的均值和标准差生成正态分布随机数,存入对应n{i}列
  • pd.qcut()将随机值列分割为5个等频区间,labels=False返回0到4的整数表示数据所在分位,结果存入对应q{i}列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 05:00:04