如何创建每列具有不同随机数的数据框?

问题描述 投票:0回答:2

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

CODE:

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

结果

result

期望:每列的数字值不同]

我该如何处理?

python-3.x loops random
2个回答
1
投票
yuju= pd.DataFrame() for i in range(1990,2020): yuju[i]= [random.uniform(65.5,140.5) for i in range(20)] yuju

输出

          1990        1991        1992        1993        1994        1995        1996        1997  ...        
0    73.117785  104.158470   76.704672  136.295814  106.008801   88.129275   96.843800  118.172649  ...  106.08
1    77.146977  131.584449  112.781430  113.071448  118.806880  140.301281  132.196554  136.222878  ...   74.85
2    67.976294   90.571586  137.313729  126.388545  134.941530  119.544528  119.692859  124.883332  ...   82.48
3    76.577618  102.765745  137.014399   84.696234   70.087628   86.180974  121.070030   87.991356  ...   71.67
4   104.675987  134.869611  120.221701   69.652423  105.650834  107.308007  122.372708   80.037225  ...   90.58
5   107.093326  124.649323  138.961846   84.312784   98.964176   87.691698  120.426266   79.888018  ...   97.46
6    97.375159   97.607740  119.027947   77.545403   81.365235  119.204719   75.426836  132.545121  ...  120.15
7    81.099338   94.315767  123.389789   85.734648  134.746295   99.196135   65.963834   72.895016  ...  135.63
8   129.577824  118.482358  137.838454   83.338883   68.603851  138.657750   85.155046   73.311065  ...   91.12
9   129.321333  134.598491  138.810883  119.487502   75.794849  125.314185  118.499014  126.969947  ...   74.86
10  122.704160  118.282868  114.196318   69.668442  112.237553   68.953530  115.395672  114.560736  ...   88.21
11  112.653109  109.635751   78.470715   81.973892  111.413094   76.918852   76.318205  129.423737  ...  103.06
12   80.984595  136.170595   83.258407  112.248942   96.730922   84.922575  104.984614  127.646325  ...  103.24
13   82.658896   97.066191   95.096705  107.757428   93.767250   93.958438  115.113325   98.931509  ...  105.32
14   85.173060   77.257117   72.668875   87.061919  130.088992   80.001858  104.526423   85.237558  ...   87.86
15   68.428850   79.948204  107.060400   92.962859  133.393354   93.806838   99.258857  138.314982  ...   86.80
16  115.105281  110.567551  119.868457  139.482290  103.235046  128.805920  140.131489  107.568099  ...   98.16
17   71.318147  119.965667   97.135972   90.174975  125.738171  115.655945   86.333461  114.574965  ...  134.80
18  134.000260  121.417473  104.832999  129.277671  139.932955  122.623911   92.369881  109.523118  ...  137.47
19  104.444951  111.712214  130.602922  119.446700   88.256841  110.316280   74.611164   88.364896  ...  115.32


2
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.