見出し画像

2軍(ファーム)選手を分析してダイヤの原石を探そうぜ!<データ処理編>クラスタリングで四苦八苦の巻

プロ野球選手の分析をするとき1軍の選手や有名選手を分析することがほとんどと思います。
しかし、これから活躍しそうな選手、化けそうな選手を調べたくないでしょうか?
そこで、2軍ファーム野手のバッター成績をクラスタリング分析して、クラスターごとの注目の選手を探っていきたいと思います。
今回は、前回収集したデータを基にクラスタリングをして有力選手を探っていきます。

前回のデータからの修正

前回取得したデータを見ると重なりがあります。
まずは、重なっているカラムを削っていきましょう。

import pandas as pd
import matplotlib.pyplot as plt
import sklearn.linear_model as LM
import category_encoders as ce
import numpy as np
import seaborn as sns
from sklearn import preprocessing
from sklearn.model_selection import cross_val_score, train_test_split
from sklearn import cluster, preprocessing, mixture #機械学習用のライブラリを利用 

data = pd.read_csv('2nd_grade_player.csv')
data = data.drop('Unnamed: 0',axis=1)
data.columns()

結果:

Index(['順位_x', '選手名', 'チーム_x', '打率_x', '打席数_x', '打数_x', '安打_x', '本塁打_x',
      '打点_x', '盗塁_x', '四死球', '三振_x', '本塁打率', '三振率', '四球率', 'PSN', 'BB/K',
      '出塁率_x', '長打率_x', 'OPS', 'NOI', 'GPA', 'IsoP', 'IsoD', 'RC', 'RC27',
      'XR', 'XR27', 'BABIP', 'SecA', 'TA', '順位', 'チーム', '打率', '試合', '打数',
      '得点', '安打', '二塁打', '三塁打', '本塁打', '塁打', '打点', '盗塁刺', '犠打', '犠飛', '四球',
      '敬遠', '死球', '併殺打'],
     dtype='object')
​

'順位_x','打数_x', '安打_x', '本塁打_x','チーム_x', '打率_x','打点_x'は重なりがありますので削ります。

data = data.drop(['順位_x','打数_x', '安打_x', '本塁打_x','チーム_x', '打率_x','打点_x'],axis=1)

データには記録がないところに「-」が埋められています。
「-」ですと機械学習の処理する際に受け付けないので、0にしておきます。
野球の記録データですので0にしても問題ないでしょう。

data = data.replace('-',0)

最後にデータを保存しておきましょう。

data.to_csv('mungged_data.csv',index=False)

ここまでのデータとコードを以下に添付しておきますので参考にどうぞ。

ここから先は

5,858字 / 7画像 / 1ファイル
この記事のみ ¥ 100

よろしければサポートをよろしくお願いします。サポートいただいた資金は活動費に使わせていただきます。