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)
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 件のコメント:
コメントを投稿