2015-03-18 61 views
1

如果我有一个数据帧,例如从1到50的数字,那么我需要'X'组号码,每组包含'Y'的随机数。数字不能重复。随机从数据帧中选择数据,但不重复

例如,X =5 and Y=5

X1 1, 8, 12, 17, 16 
X2 9, 22, 45, 47, 23 
X3 13, 19, 21, 34, 50 
X4 46, 49, 29, 38, 11 
X5 33, 26, 14, 7, 6 

有谁知道我怎么会被Python熊猫或随机包或由R做到这一点?

+1

什么每当你需要为X的元素时洗牌行(或指数),那么,弹出一个关洗牌后的结果呢? – jedwards 2015-03-18 21:48:10

+1

在R中,尝试'矩阵(样本(50,5 * 5,替换= FALSE),ncol = 5)' – akrun 2015-03-18 21:48:12

回答

1
In [64]: 

np.random.choice(np.arange(1,51), (5,5), replace=False) 
Out[64]: 
array([[18, 35, 20, 39, 7], 
     [27, 41, 26, 30, 14], 
     [47, 23, 17, 40, 38], 
     [34, 6, 3, 42, 31], 
     [48, 49, 16, 15, 1]]) 

然后,您可以把它传递给DF构造:

In [65]: 

pd.DataFrame(np.random.choice(np.arange(1,51), (5,5), replace=False)) 
Out[65]: 
    0 1 2 3 4 
0 35 41 38 50 26 
1 24 34 14 2 29 
2 8 43 25 17 49 
3 30 5 40 6 21 
4 20 11 31 33 23