Как создать фрейм данных с разными случайными числами в каждом столбце? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь сделать разные случайные числа, но в каждом столбце оно остается одинаковым, как исправить это, используя 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

РЕЗУЛЬТАТ

result

ОЖИДАЕМЫЕ: Различные значения чисел для каждого столбца

Как с этим справиться?

Ответы [ 2 ]

2 голосов
/ 28 апреля 2020

Это намного проще, чем вы думаете

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
1 голос
/ 28 апреля 2020

здесь решение каждой итерации вы должны снова случайным образом назначить новое значение для каждого столбца

yuju= pd.DataFrame()                                                   

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


yuju                                                                   


output

          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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...