如何正确获取nba投篮图表数据



我想从nba网站获取数据来创建投篮图表。我从这个网站得到的https://datavizardry.com/2020/01/28/nba-shot-charts-part-1/?fbclid=IwAR3BheHQkSAmCJRr_z7ux1ygbspLjLdrvTRjWAVHOrr2BPvVh7jsIos_e9w我的代码是这样的:

from nba_api.stats.endpoints import shotchartdetail
import json
import pandas as pd
response = shotchartdetail.ShotChartDetail(
team_id=0,
player_id=0,
season_nullable='2001-02',
season_type_all_star='Regular Season'
)
content = json.loads(response.get_json())
results = content['resultSets'][0]
headers = results['headers']
rows = results['rowSet']
df = pd.DataFrame(rows)
df.columns = headers
# write to csv file
df.to_csv(r'C:UsersCompDesktopnba_2001-02.csv', index=False)

它是有效的,但在本文中,当我从一开始下载示例数据时,数据中的作者也会获得有关未命中投篮的信息,当我运行代码时,我只会获得有关投篮的数据。有没有可能得到投篮不中的信息,或者nba不再分享这些数据?

默认情况下,软件包(可能自文章以来已更新(设置为仅在得分的情况下进行回击,因此您需要将该参数更改为不是得分,而是射门尝试,因为这将返回已命中和未命中的射门:

response = shotchartdetail.ShotChartDetail(
team_id=0,
player_id=0,
season_nullable='2001-02',
context_measure_simple = 'FGA', #<-- Default is 'PTS' and will only return made shots, but we want all shot attempts
season_type_all_star='Regular Season'
)

此外,我还想在数据帧中添加一件事,这样就可以按名称而不是数字来列:

results = content['resultSets'][0]
headers = results['headers']
rows = results['rowSet']
df = pd.DataFrame(rows, columns=headers) #<-- add the columns parameter
df.columns = headers

相关内容

最新更新