データの前処理~pythonでNBAのデータ分析をしてみよう~【経営工学を専門にしている大学生の日記】Part 1


こんにちは!しゅんです!

このブログでは経営工学を勉強している現役理系大学生が、経営工学に関することを色々話していきます!


ぼくが経営工学を勉強している中で感じたことや、興味深かったことを皆さんと共有出来たら良いなと思っています。


そもそも経営工学とは何なのでしょうか。Wikipediaによると

経営工学(けいえいこうがく、英: engineering management)は、人・材料・装置・情報・エネルギーを総合したシステムの設計・改善・確立に関する活動である。そのシステムから得られる結果を明示し、予測し、評価するために、工学的な分析・設計の原理・方法とともに、数学、物理および社会科学の専門知識と経験を利用する。

引用元 : 経営工学 – Wikipedia

長々と書いてありますが、要は経営、経済の課題を理系的な観点から解決する学問です。

しゅん
しゅん

今回の記事はNBAのスタッツを使ってデータ分析をしてみたいと思います!


経営工学とは少し離れるかもしれませんが、データ分析に興味がある人、NBAに興味がある人はぜひ今回の記事を読んでみてください!!!


NBAのデータを見てみる


まずはNBAのスタッツを入手してみましょう。今回はNBA REFERENCEというサイトからスタッツをcsv形式で入手しました。

こちらのリンクからファイルをダウンロードしました。


今回はgoogle colabを使ってやってみようと思います。

google colabの使い方などはネットで調べると色々出てくるのでそれを参考にしてみてください。

今回はpandasを使ってデータ分析をやってみたいと思います。

# pandasのインポート
import pandas as pd

# csvファイルの読み込み
df = pd.read_csv('data/NBA_PLAYER.csv')


google colabでcsvファイルを読み込む方法も調べれば出てくるのでそれを参考にしてみてください。

それでは今回扱うデータがどのような型なのか見てみましょう。

# データの表示
df


少し見づらいけど各選手のポジション、年齢、スタッツなどのデータが入っていますね。

左下に書いてあるように、このデータは縦に812行、横に31列のデータになっているようです。

データの重複を削除する


今見たようにこのデータは812×31のデータ数になっています。

ところがRk(ランキング)のところを見ると605人しか登場してないです。


ということはこのデータに2回登場している選手がいるということですね。

どうやらシーズン中に移籍した選手は
複数のデータが存在するようです。



ということで複数登場するPlayer削除してみます。

# "Player"の値が一致する行を削除(すべての"Player"の登場回数が1回になります)
df = df[~df.duplicated(subset = "Player")]

# データを表示
df


左下のところを見ると縦が605行でRkの値と一致していますね。ひとまずこれでPlayerの重複問題は解決しました。

欠損値の処理


では次に欠損値があるかどうかを確認してみましょう。

#欠損値の存在する列を特定する
df.isnull().sum()


左がスタッツ項目で右が欠損値の数です。3P%と2P%とFT%のところに欠損値がありますね。

欠損値の処理方法はいくつかありますがここでは簡単に、欠損値がある行を削除してみます。

#欠損値の存在する行を削除
df=df.dropna(how='any')

#データの表示
df


左下を見ると縦が520行になっているので削除できているようです。

欠損値の処理方法についてですが、今回のように削除するとデータ数が少なくなり正常な分析ができなくなってしまうという懸念があります。

そのため削除ではなく何か数値に置き換えたりする対処法も存在します。

例えば回帰で推定値を求めて欠損値の補完をするということも考えられそうですね。

まあここでは面倒くさいのでやりません笑

おわりに


今回の記事はデータの前処理までです!

次回以降実際にデータをいじくっていこうと思います。

最後までこの記事を読んでくれてありがとうございました!

この記事が役に立ったら幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA