2024年7月1日月曜日

NBA選手のキャリア年数

前回の続きです。 データセットは同じ1950年〜2017年までの選手データです。 最高齢プレーヤーは44歳の1人だけと出力されたので、選手名を出してみます。
#最高齢取得
max_player = df['Age'].max()
#最高齢のインデックス取得
max_index = df['Age'].idxmax()

#得られたインデックスから最高齢の選手データをスライス
print(df[max_index:max_index+1])

         Year        Player Pos   Age   Tm    G   GS    MP  PER    TS%  3PAr    FTr  ORB%  DRB%  TRB%  AST%  ...   2PA    2P%   eFG%   FT  FTA  FT%  ORB  DRB  TRB  AST  STL  BLK  TOV    PF   PTS  PPG
18671  2007.0  Kevin Willis  PF  44.0  DAL  5.0  0.0  43.0  6.3  0.432   0.0  0.154   5.7  16.4  11.2   3.6  ...  13.0  0.385  0.385  2.0  2.0  1.0  2.0  6.0  8.0  1.0  2.0  1.0  2.0  11.0  12.0  2.4

最高齢まで活躍したのは2007年まで活躍したKevin Willis選手だと分かりました。
調べてみるとマイケル・ジョーダン選手と同期なんですね。まさに鉄人。


NBA選手のキャリア年数


次は選手のキャリア年数を洗い出してみます。
# プレーヤー毎にグループ化
players = df.groupby('Player')

# それぞれの個数をカウント
players_size = players.size()

print(players_size)

Player
A.C. Green            18
A.J. Bramlett          1
A.J. English           2
A.J. Guyton            3
A.J. Hammons           1
                      ..

プレーヤー毎の行数が抽出されました。
このままの数値を使えば良さそうですが、チームを渡り歩いて重複してるデータもあるので、退団年齢から加入年齢を引いてキャリア年齢を割り出します。



# プレーヤー毎の加入年齢
min_age = players["Age"].min()
# プレーヤー毎の退団年齢
max_age = players['Age'].max()

# 引いてキャリア年数を算出
career = max_age - min_age

# ボリューム順にソートされる
print(career.value_counts())
print(f"選手の平均キャリア年数: {np.round(career.mean(), 2)}年")

plt.hist(career, bins=22)
plt.title("NBA選手のキャリア年数")
plt.xlabel("キャリア年数")
plt.ylabel("人数")
plt.show()

Age
0.0     1052
1.0      486
2.0      323
3.0      276
4.0      212
9.0      184
5.0      181
6.0      178
7.0      170
8.0      169
10.0     161
11.0     138
12.0     130
13.0      95
14.0      52
15.0      41
16.0      26
17.0      20
18.0      16
19.0       3
20.0       2
22.0       1
Name: count, dtype: int64

選手の平均キャリア年数:  4.45年




四則演算でデータ毎の計算を一瞬で出来るのはpandasの強みですね。


結果を見ると、初年度で退団する人が圧倒的に多いです。
世界最高峰の運動能力を持つ選手が集まるNBAの厳しさが伺えます。
そこから緩く減っていきますが、キャリア9年目が一時的に増えてるのはそこがベストなキャリア年数なのか、年金制度などが関係してるのか分かりません。
最長年数は22年、全体の平均選手寿命は4.45年と出ました。


0 件のコメント:

コメントを投稿

Pythonで地図空間データを扱う⑤

ベースの地図が出来た所で、他のデータを被せてみます。 国土地理院の  500mメッシュ別将来推計人口データ  を使用します。 同じく神奈川県のデータ  500m_mesh_suikei_2018_shape_14.zip をダウンロードします。 ベースの地図データと同じ場所に展開...