
338
10
章 データの集約とグループ演算
10.3.4
例:ランダムサンプリングと順列
モンテカルロシミュレーションをする場合や、その他の応用において、巨大なデータセットからラ
ンダムにサンプルデータを(置換を伴う、伴わないにかかわらず)抽出したいことがあるかと思います。
この「抽出」を行う方法は数多くありますが、ここでは、シリーズの
sample
メソッドを使います。
デモンストレーションのために、トランプのデッキを作る方法を紹介します。
#
ハート、スペード、クラブ、ダイヤの順で、それぞれの頭文字を取っている
suits = ['H', 'S', 'C', 'D']
card_val = (list(range(1, 11)) + [10] * 3) * 4
base_names = ['A'] + list(range(2, 11)) + ['J', 'K', 'Q']
cards = []
for suit in ['H', 'S', 'C',
'D']:
cards.extend(str(num) + suit for num in base_names)
deck = pd.Series(card_val, index=cards)
これで、長さ
52
のシリーズを用意できました。このシリーズのインデックスにはカード名が含まれて
いて、値はブラックジャックやその他のゲームで使われるいつものものです。ここでは話をシンプルに
するため、トランプのエースは
1
とします。
In [108]: deck[:13] ...