首页 > 解决方案 > 如何在每列上创建具有不同随机数的数据框?

问题描述

我正在尝试制作不同的随机数,但每一列都保持相同,如何使用 1 行来修复它?

代码:

yuju= pd.DataFrame()
column_price_x = [random.uniform(65.5,140.5) for i in range(20)]
for i in range(1990,2020):
    yuju[i] = column_price_x
yuju

结果

结果

预期:每列的不同数字值

我该如何处理?

标签: python-3.xloopsrandom

解决方案


它比你想象的要容易得多

In [12]: import numpy as np

In [13]: df = pd.DataFrame(np.random.rand(5,5))

In [14]: df
Out[14]:
          0         1         2         3         4
0  0.463645  0.818606  0.520964  0.016413  0.286529
1  0.701693  0.556813  0.352911  0.738017  0.148805
2  0.899378  0.626350  0.821576  0.917648  0.404706
3  0.985617  0.336138  0.443910  0.690457  0.627859
4  0.121281  0.784853  0.799065  0.102332  0.156317

np.random.rand来自标准均匀分布的样本(超过 [0,1])

编辑

如果您想在给定数字上均匀分布,请使用 np.random.uniform

In [16]: pd.DataFrame(np.random.uniform(low=65.5,high=140.5,size=(5,5))
    ...: )
Out[16]:
            0           1           2           3           4
0  124.356069   96.718934  100.587485  136.670313  124.134073
1   68.109675  105.677037   86.084935  109.284336  108.393333
2  120.445978  125.036895   92.557137  105.864824   95.297450
3   91.027931  140.040051   94.362951   80.870850   70.106912
4  107.404708   92.472469   84.748544   82.116756  129.313166

推荐阅读