python 如何使用nba_api从多个赛季中提取球员游戏日志?

wbrvyc0a  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(197)

我试着熟悉python的nba_api包。我试着从过去的两个赛季中提取球员数据。但是,我只能得到所有的赛季或者只有一个赛季。
首先,我发现我可以收集单个赛季的比赛日志:

from nba_api.stats.static import players

player_dict = players.get_players()

luka = [player for player in player_dict if player['full_name'] == 'Luka Doncic'][0]

luka_id = luka['id']

from nba_api.stats.endpoints import playergamelog

gamelog_luka = playergamelog.PlayerGameLog(player_id=luka_id, season='2022')

这样一来,他这个赛季的比赛记录就出来了,接下来,我尝试着收集了一下他这两个赛季的比赛记录:

gamelog_luka = playergamelog.PlayerGameLog(player_id=luka_id, season=['2020', '2022'])

我注意到这样做只给了我从2020年12月到2021年5月的65场比赛。我试图获得从2021赛季开始到现在的比赛日志。有语法修复吗?有没有方法通过使用赛季ID来实现这一点?

dm7nw8vv

dm7nw8vv1#

您可以使用SeasonAll,转换为Pandasdf,转换日期时间,最后查询。

import pandas as pd
from nba_api.stats.endpoints import playergamelog
from nba_api.stats.library.parameters import SeasonAll
from nba_api.stats.static import players

luka_id = next((x for x in players.get_players() if x.get("full_name") == "Luka Doncic"), None).get("id")

gamelog_luka = pd.concat(playergamelog.PlayerGameLog(player_id=luka_id, season=SeasonAll.all).get_data_frames())
gamelog_luka["GAME_DATE"] = pd.to_datetime(gamelog_luka["GAME_DATE"], format="%b %d, %Y")
gamelog_luka = gamelog_luka.query("GAME_DATE.dt.year in [2021, 2022]")
print(gamelog_luka)

相关问题