Python新手试图弄清楚这一切是如何工作的。我试图创建一副牌,然后随机选择一张牌(类似于发牌(,但我不知道如何从数据帧中选择一个随机元素。
到目前为止,我的代码如下:
Hearts = ["H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","HJ","HQ","HK","HA"]
Spades = ["S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","SJ","SQ","SK","SA"]
Diamonds = ["D1","D2","D3","D4","D5","D6","D7","D8","D9","D10","DJ","DQ","DK","DA"]
Clubs = ["C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","CJ","CQ","CK","CA"]
Deck = pd.DataFrame([Hearts,Spades,Diamonds,Clubs])
print(Deck)
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK HA
1 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK SA
2 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK DA
3 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK CA
我知道还有很多内容,但在这个阶段,我只想能够从上面的数据帧中打印一个随机元素。希望有人能帮忙!
通过DataFrame.stack
创建Series
,对于一个随机值使用Series.sample
,最后通过Series.iat
为标量选择值:
print(Deck.stack().sample(1).iat[0])
H9
或者通过np.ravel
:使用具有平坦值的np.random.choice
print(np.random.choice(np.ravel(Deck), 1)[0])
H8
>>> from random import choice
>>> choice(choice(Deck)
'S2'
>> choice(choice(Deck))
'D1'
下面将随机选择一行,然后选择一列。
Deck.sample(1, axis=0).sample(1, axis=1)