2015-03-18 58 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