4:NBA_APIのインストールと基本的な使い方

~NBA_APIを使ってみよう!~

nba_apiのインストール方法

まずはライブラリをインストールしましょう。JupyterLabのセルまたはターミナルで以下のコマンドを実行します:

!pip install nba_api

エラーが出なければOKです!

ライブラリってなに?

Pythonには、標準で使える機能もたくさんありますが、特定の目的に特化した便利なツール(=ライブラリ)がたくさん用意されています。
例えば以下のようなものです。

ライブラリ名できること
pandas表データの操作(Excelみたいな処理)
matplotlibグラフの作成
requestsWeb上からデータを取ってくる
nba_apiNBAの選手や試合のスタッツを取得

インストールとは?

Pythonは、ライブラリを使う前に「このツールを使いたい」と宣言してダウンロード&準備する必要があります。これが「インストール」です。
つまり先ほどのコードは、「nba_apiというnbaのデータを取得するのに特化したツールを使えるように準備した。」と言うことになります。

なぜインストールが必要なの?

Python本体には、すべての機能が最初から入っているわけではありません。
必要なものだけ、後から「追加する仕組み」になっています。

  • PythonだけではNBAのスタッツは取得できない
  • nba_apiという外部ライブラリが必要
  • だから !pip install nba_api で取り込む

という流れになります。

実行してみよう!

まずは、ライブラリが正しく使えるか、以下の簡単なコードをJupyterLabで実行してみてください。

from nba_api.stats.static import players

# 「Stephen Curry」の情報を取得
curry = players.find_players_by_full_name("Stephen Curry")[0]

# 結果を表示
print(curry)

このような結果が出力されると思います。

順を追って解説していきます。

from ~~ import ~~ とは?

from nba_api.stats.static import players

についてです。この1行は、NBA_APIライブラリの中にある「players モジュール(またはオブジェクト)」をPythonのコードで使えるようにするための宣言です。
このコードは次のような階層構造になっています:

nba_api(ライブラリ全体)
├── stats(データ取得機能がまとまったサブパッケージ)
│ └── static(選手・チームなど「変わらない情報」が入っているモジュール)
│ └── players(選手情報に関する関数が入っているモジュール・オブジェクト)

パート種類説明
nba_apiパッケージNBA関連機能をまとめたライブラリ全体
nba_api.statsサブパッケージスタッツ取得用の機能をまとめた箱
nba_api.stats.staticモジュール静的データ(変わらない基本情報)用の箱
playersモジュール・オブジェクト選手情報取得のための関数セット(実態は関数をまとめたオブジェクト)

つまり、「NBAの選手情報を扱うために、nba_apiライブラリの中の stats.static という場所から players という機能を読み込む」ということです。

関数について

playersには以下の関数が用意されています。

関数名説明
get_players()全選手一覧を取得
find_players_by_full_name()フルネームで検索(完全一致)
find_players_by_first_name()名前(名)で検索
find_players_by_last_name()名前(姓)で検索

この中でよく使うのは、get_players()find_players_by_full_name()になりますので、この二つを解説します。
1. get_players()

  • 選手ID、名前、現役かどうか、などが含まれます。
  • 全選手(現役+引退)の一覧データを取得する関数。
  • 各選手の辞書形式のリストを返します。(辞書形式については最後に解説します。)

2. find_players_by_full_name(name: str(文字列))

  • フルネームで選手を検索します(例:"Stephen Curry")。
  • 完全一致のみヒットします。
  • 結果は get_players() の中から一致する辞書を抽出したリスト。(リスト形式については最後に解説します。)
# 「Stephen Curry」の情報を取得
curry = players.find_players_by_full_name("Stephen Curry")[0]

ここでは、

players.find_players_by_full_name("Stephen Curry")
→ 選手名が “Stephen Curry” と完全一致する選手情報のリストを取得します。

[0] 

→ 一致した結果の最初の1件目(通常は1人だけ)を取り出しています。

curry =
「取得した選手情報を curry という名前の変数に保存する」 という意味です。
Pythonにおいて = は「イコール」ではなく、「代入(だいにゅう)」の記号です。

  • 右側players.find_players_by_full_name(...))を実行して得られた結果を
  • 左側(ここでは curry)に保存する(=代入する)

という動きです。

出力された結果の意味とは?

最後に結果の解説です。こちらが出力されたと思います。

{
  'id': 201939,
  'full_name': 'Stephen Curry',
  'first_name': 'Stephen',
  'last_name': 'Curry',
  'is_active': True
}

それぞれのキー(変数名)の意味です

キー(変数名)値の例意味・説明
'id'201939NBAの内部で使われる選手ID(Player ID)。このIDを使ってAPIから成績などを取得します。
'full_name''Stephen Curry'選手のフルネーム(名前+姓)
'first_name''Stephen'名前(下の名前)
'last_name''Curry'姓(苗字)
'is_active'True現役かどうかを表す真偽値。True:現役選手False:引退・契約なし

リスト型と辞書型とは?

大きな違いのまとめが以下になります。

比較項目リスト型(list)辞書型(dict)
形式["A", "B", "C"]{"name": "Curry", "team": "Warriors"}
アクセスインデックス(番号)でキー(名前)で
特徴順番重視意味(名前)重視
リスト型(list)とは?

「順番に並んだデータの集まり」です。
カンマで区切られた値を [](角かっこ)で囲みます。

names = ["LeBron", "Curry", "Durant"]
  • 同じ型でなくてもOK(数字と文字混在も可能)
  • 順番がある(インデックス:0, 1, 2…)
  • names[0] → “LeBron”
辞書型(dict)とは?

「名前(キー)と値のペアでできたデータ」です。
{}(波かっこ)で囲み、キー: 値 の形式で書きます。

player = {
  "full_name": "Stephen Curry",
  "team": "Warriors",
  "number": 30
}
  • Web APIのデータもたいてい辞書形式
  • 順番ではなく「名前(キー)」で取り出す
  • player["full_name"] → “Stephen Curry”

いかがだったでしょうか?今NBA_APIのインストールから結果の出力まで通してやってみました。なんとなくNBA_APIの使い方が分かったのではないでしょうか。NBA_APIは基本的にpandasと言うライブラリと同じ処理でデータを操作することができるので、次回はpandasの基本について学んで行きましょう!

5:pandasの基礎1:データの読み込みと表示へ進む


学習コンテンツ一覧


コメント

コメントを残す

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