Python-试图从Pandas中的DataFrame中随机选择一个元素



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)

最新更新