从大数据中随机采样与排列----groupby与apply的应用

构造一副扑克牌,随机抽取其中的几张

import numpy as np
from pandas import DataFrame,Series

#红桃hearts   黑桃spades   梅花clubs   方片diamonds
#牌名的花色
suits = ['h','s','c','d']
#列表中[10]*3表示310,共4card_val = (list(range(1,11)) + [10] * 3 ) * 4
#牌名的值
base_names = ['A'] + list(range(2,11)) + ['J','Q','K']
cards = []
#牌名(值与花色)
for suit in suits:
    cards.extend(str(num) + suit for num in base_names)
deck = Series(card_val,index=cards)
#52个数中随机抽取ndef draw(deck,n):
    #随机抽取N个元素中的K    return deck.take(np.random.permutation(len(deck))[:n])

get_suit = lambda card:card[-1]#根据花色分,只要获得牌名最后一个字母
#从每种花色中随机抽取两张牌
print(deck.groupby(get_suit).apply(draw,n=2))

你可能感兴趣的:(python数据分析)