より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Pythonでラグビーをポジション別に身長で分析〜もっとも身長の高いポジションは?

ラグビーはポジションも個性があって面白いです。

www.jsports.co.jp

身長とポジションの相関図

今回は身長とポジションの相関図を見ることにします。

f:id:rimever:20181118192144p:plain
ポジションと身長の相関図

やたらでかい相関図になってしまいました。 複数ポジションを担当できる選手がいたので、あえてサイズも大きくしてます。 下記の記事を参考にさせていただいてます。 Jupyter + Matplotlib > Figureのサイズを拡大する | 字のぼやけを緩和する - Qiita

とはいえ、「Hooker,No.8」というケースではHookerとNo.8とレコードを2行にしたいと思います。

new_data = pd.DataFrame()

for index, row in data.iterrows():        
    values = []
    for column in data.columns:
        values.append(row[column])
    
    series = pd.Series(values, index=data.columns)
    for position in str(row['Position']).split(','):
        copy_series = series.copy()
        copy_series['Position'] = str.strip(position)
        new_data = new_data.append(copy_series, ignore_index = True)

new_data.describe()

処理が重いので、おいおい工夫が必要。

f:id:rimever:20181119211416p:plain

スッキリしました。

箱ひげ図

ここまで来て散布図ばかりしか使ったことがない(使えない)ので箱ひげ図を使ってみます。

散布図だと、値の散らばりはわかるものの、どのあたりが平均なのかはよくわかりません。

箱ひげ図が良いかと。

new_data.boxplot(column='Height',by='Position',figsize=(15,5))

f:id:rimever:20181119225903p:plain

ロック

結果はラグビーファンの方々からするとみるまでもないことだったかと思います。

身長はロックがやはり高くなります。

ロックというポジションはスクラムで2列目に位置します。

ラインアウトでボールを受け取るポジションになりますので、背が高い方が有利とされます。

rugbymania-noside.com

ラグビーラインアウトも面白く、見所となっています。

ロックといえば、漫画「ALL OUT」のイワシこと石清水のポジションでした。

dic.pixiv.net

その中でも210を超える選手がいます。

そんなトールマンは一体、誰なのか?

リチャード=メトカフェ。イングランドの選手です。代表としては9試合。少し物足りないか。

f:id:rimever:20181118195821p:plain

Richard Metcalfe - Wikipedia

さらにロックの選手を掘り下げてみます。

f:id:rimever:20181119213550p:plain

ロックの平均身長は194cm。ちなみに全体平均は、185cmです。

試合数が多い順で表示してみます。

temp = new_data.query('Position == "Lock"')
temp = temp.sort_values('Mat', ascending=False)
temp.head(10)

DataFrameのheadに引数渡せば、任意の行数を取得できることを初めて知りました。

f:id:rimever:20181119221919p:plain

全体的に190-200の選手がズラリ。

203cm 119kgで勝率90%と驚異的なのはサム・ホワイトロック。ニュージーランドの選手ですね。

サム・ホワイトロック - Wikipedia

ちょうど、ニュージーランド代表とアイルランド代表の試合を見ていたのですが、いつの間にか出場していました。(え?)

日本では大野均が98試合を記録しています。この98試合は日本代表としては最多キャップ数です。

rugby-rp.com