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

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

Pythonでラグビーをもっと知ろう! 〜 ラグビー界のメッシと、それに続く者

最近、ラグビーの魅力を紹介されたので、ラグビーに関するデータを分析してみようと思います。

何を目標にするのか

今回は、「ニュージーランドの選手についてデータを収集し、分析してみる!」とことにします。

なぜニュージーランドかというとラグビーがもっとも強い国だからです。

courrier.jp

450万人の人口にも関わらず、フランスよりもオーストラリアよりも強いのです。

データを集める

そんな都合よくラグビーのデータは用意されていません。

データを集めることは大事

データサイエンティストのブログなどを見ていると、必要なデータは十分に用意されていないのが現実のようです。

下手すると部署ごとの政治に踏み入れ、エラい方々を説得して、やっとアクセスできるというケースもあるようです。

下記の例は理想なのでしょうね。

機械学習チームにおけるエンジニアの道は2つある――クックパッドの伊藤敬彦氏が語る生存戦略【デブサミ2018 夏】 (1/2):CodeZine(コードジン)

Webスクレイピング

それはさておき、今回は、ESPNが提供しているデータをWebスクレイピングして収集しました。

データを分析する

今回はWebスクレイピングしたデータをpandasの基本関数で軽く扱ってみることにします。

データの概要(describe)

f:id:rimever:20181110193143p:plain

データが多すぎて、よくわからないのですがPtsが得点で、Matが試合数です。

1598得点した男

やはり、スポーツで一番注目されるのは得点でしょう。

あのニュージーランド代表の選手の平均は18得点。

にも関わらず、1598得点もしてしまう人がいますね。

すごい……。そのお方はわかっているのですが。

Queryで調べてみます。

dan_carter = data.query('Pts == 1598')
dan_carter.head()

f:id:rimever:20181110193717p:plain

そう、ダン=カーターです。ラグビー界のメッシ!と言われる選手です。

rugbymania-noside.com

それが日本で見れるのですから、ラグビーファンからするとたまらないのがわかります。

ダン=カーターに続く男を探せ

単純に試合数と得点の散布図を作ってみます。

f:id:rimever:20181110193922p:plain

右上に君臨するお方が、ダン=カーター。

彼の存在がダントツなのですが、これから試合数を順調に重ねれば届きそうな好位置にいる選手がいるようです。

f:id:rimever:20181110194200p:plain

400点以上を取っている選手をピックアップしてみました。

その中で、27歳と、まだまだこれから可能性を持っているのがBeauden Barett(ボーデン=バレット)です。

rugbyhack.com

今後も期待!

他のデータも使い、機械学習も使い、ボーデン=バレットがダン=カーターを超える総得点を残せるのか予測してみたいですね。

今日はこれくらいで。

おまけ

ポジションごとの得点も散布図で出してみました。

Fly-Half(スタンドオフ)が得点が高いのですね。

f:id:rimever:20181110210248p:plain

追記

Webスクレイピングについては注意することがあります。

vaaaaaanquish.hatenablog.com