<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 その他のデータフレーム操作
Step1:  DataFrame を array に変換する例です。
Step2:  Series を array に変換する例です。
Step3:  トランプのカードを集めた DataFrame を定義して、カードのシャッフルを行う例です。
Step4:  permutation 関数で、index の順番をランダムにシャッフルします。
Step5:  ランダムにシャッフルした index を用いて行を並べ替えます。
Step6:  reset_index メソッドで index に通し番号を付け直します。
Step7:  DataFrame のグラフ描画機能を使用する例です。
3回分のランダムウォークのデータを並べた DataFrame を作成します。
Step8:  DataFrame の polot メソッドでグラフを描きます。
Step9:  練習問題
次の関数 coin_game は、所持金と掛け金を引数に渡すと、1/2の確率で掛け金の分だけ所持金が増減した値が返ります。
Step10:  次は、1000円の所持金において、100円を賭けた場合の結果を示します。
<ASSISTANT_TASK:>
Python Code:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
Explanation: その他のデータフレーム操作
End of explanation
data = {'City': ['Tokyo','Osaka','Nagoya','Okinawa'],
                 'Temperature': [25.0,28.2,27.3,30.9],
                 'Humidity': [44,42,np.nan,62]}
cities = DataFrame(data)
cities
cities.as_matrix()
Explanation: DataFrame を array に変換する例です。
End of explanation
cities['City'].as_matrix()
Explanation: Series を array に変換する例です。
End of explanation
face = ['king','queen','jack','ten','nine','eight',
        'seven','six','five','four','three','two','ace']
suit = ['spades', 'clubs', 'diamonds', 'hearts']
value = range(13,0,-1)
deck = DataFrame({'face': np.tile(face,4),
                  'suit': np.repeat(suit,13),
                  'value': np.tile(value,4)})
deck.head()
Explanation: トランプのカードを集めた DataFrame を定義して、カードのシャッフルを行う例です。
End of explanation
np.random.permutation(deck.index)
Explanation: permutation 関数で、index の順番をランダムにシャッフルします。
End of explanation
deck = deck.reindex(np.random.permutation(deck.index))
deck.head()
Explanation: ランダムにシャッフルした index を用いて行を並べ替えます。
End of explanation
deck = deck.reset_index(drop=True)
deck.head()
Explanation: reset_index メソッドで index に通し番号を付け直します。
End of explanation
result = DataFrame()
for c in range(3):
    y = 0
    t = []
    for delta in np.random.normal(loc=0.0, scale=1.0, size=100):
        y += delta
        t.append(y)
    result['Trial %d' % c] = t
result.head()
Explanation: DataFrame のグラフ描画機能を使用する例です。
3回分のランダムウォークのデータを並べた DataFrame を作成します。
End of explanation
result.plot(title='Random walk')
Explanation: DataFrame の polot メソッドでグラフを描きます。
End of explanation
from numpy.random import randint
def coin_game(money, bet):
    coin = randint(2)
    if coin == 0:
        money += bet
    else:
        money -= bet
    return money
Explanation: 練習問題
次の関数 coin_game は、所持金と掛け金を引数に渡すと、1/2の確率で掛け金の分だけ所持金が増減した値が返ります。
End of explanation
money = 1000
money = coin_game(money, 100)
money
Explanation: 次は、1000円の所持金において、100円を賭けた場合の結果を示します。
End of explanation
<END_TASK>