Skip to main content
 首页 » 编程设计

python之Pandas 数据框中每一行的随机值

2025年05月04日21zfyouxi

您好,我有以下数据框:

import numpy as np 
import pandas as pd 
df = pd.DataFrame() 
df['T1'] = ['A','B','C','D','E'] 
df['T2'] = ['G','H','I','J','K'] 
df['Match'] = df['T1'] +' Vs '+ df['T2'] 
Nsims = 5 
df1 = pd.DataFrame((pd.np.tile(df,(Nsims,1)))) 

我通过对五个随机数求和创建了两个新列 T1_point 和 T2_point。 当我执行以下操作时:它为所有行提供了相同的编号。

Ninit = 5 
df1['T1_point'] = np.sum(np.random.uniform(size=Ninit)) 
df1['T2_point'] = np.sum(np.random.uniform(size=Ninit)) 

我想做的是使用随机数为每一行获取不同的值。

我该怎么做?

谢谢

泽普。

请您参考如下方法:

您基本上要求的是每行中的一个随机数。只需创建一个随机数列表,然后将它们附加到您的数据框?

import random 
 
df1['RAND'] = [ random.randint(1,10000000)  for k in df1.index] 
 
print df1 
 
    0  1     RAND 
0   A  G  6850189 
1   B  H  3692984 
2   C  I  8062507 
3   D  J  6156287 
4   E  K  7037728 
5   A  G  7641046 
6   B  H  1884503 
7   C  I  7887030 
8   D  J  4089507 
9   E  K  4253742 
10  A  G  8947290 
11  B  H  8634259 
12  C  I  7172269 
13  D  J  4906697 
14  E  K  7040624 
15  A  G  4702362 
16  B  H  5267067 
17  C  I  3282320 
18  D  J  6185152 
19  E  K  9335186 
20  A  G  3448703 
21  B  H  6039862 
22  C  I  9884632 
23  D  J  4846228 
24  E  K  5510052