2022年5月21日土曜日

NBAデータをDataFrameを使ってグループ分けをする

Pandasのデータフレームはデータ分析に適しています。

NBAデータから自分の取り出したいデータに分けてみます。

データ元は便利な kaggle から「NBA Players stats since 1950」というデータをお借りします。


Seasons_Stats.csvには1950-2017年まで(24691, 53)件という選手の膨大なデータがあります。


 #! /usr/bin/env python
 # -*- coding:utf-8 -*-
 
 #import pandas as pd
 import numpy as np
 
 filename = "Seasons_Stats.csv"
 
 df = pd.read_csv(filename)
 
 print(df.head())
 print()
 print(df.shape)
 print()


 Unnamed: 0    Year         Player Pos   Age  ...    STL   BLK    TOV     PF     PTS
9547        9547  1990.0     Mark Acres   C  27.0  ...   36.0  25.0   70.0  248.0   362.0
9548        9548  1990.0  Michael Adams  PG  27.0  ...  121.0   3.0  141.0  133.0 1221.0
9549        9549  1990.0   Mark Aguirre  SF  30.0  ...   34.0  19.0  121.0  201.0  1099.0
9550        9550  1990.0    Danny Ainge  PG  30.0  ...  113.0  18.0  185.0  238.0  1342.0
9551        9551  1990.0    Mark Alarie  PF  26.0  ...   60.0  39.0  101.0  219.0   860.0

(24691, 53)



これでは流石に大きすぎるので1990年代のデータだけ取り出してみましょう。

y1990 = df[df['Year'] == 1990]
y1990 = y1990.drop(y1990.columns[0], axis=1)
y1990 = y1990.reset_index(drop=True)

print(y1990.head())
print()
print(y1990.shape)
先頭のインデックスはいらないのでdrop関数で弾いて、reset_index関数で振り直しています。
引数のdrop=Trueは元のインデックスを残さないためのものです。


     Year         Player Pos   Age   Tm  ...    STL   BLK    TOV     PF     PTS
0  1990.0     Mark Acres   C  27.0  ORL  ...   36.0  25.0   70.0  248.0   362.0
1  1990.0  Michael Adams  PG  27.0  DEN  ...  121.0   3.0  141.0  133.0  1221.0
2  1990.0   Mark Aguirre  SF  30.0  DET  ...   34.0  19.0  121.0  201.0  1099.0
3  1990.0    Danny Ainge  PG  30.0  SAC  ...  113.0  18.0  185.0  238.0  1342.0
4  1990.0    Mark Alarie  PF  26.0  WSB  ...   60.0  39.0  101.0  219.0   860.0

(459, 52)

これで1990年のデータが取り出せました。

0 件のコメント:

コメントを投稿