~NBA_APIを使ってみよう!~
nba_apiのインストール方法
まずはライブラリをインストールしましょう。JupyterLabのセルまたはターミナルで以下のコマンドを実行します:
!pip install nba_api
エラーが出なければOKです!
ライブラリってなに?
Pythonには、標準で使える機能もたくさんありますが、特定の目的に特化した便利なツール(=ライブラリ)がたくさん用意されています。
例えば以下のようなものです。
ライブラリ名 | できること |
---|---|
pandas | 表データの操作(Excelみたいな処理) |
matplotlib | グラフの作成 |
requests | Web上からデータを取ってくる |
nba_api | NBAの選手や試合のスタッツを取得 |
インストールとは?
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' | 201939 | NBAの内部で使われる選手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:データの読み込みと表示へ進む
学習コンテンツ一覧
コメントを残す