【问题标题】:NBA API: Looping a dictionary to get data framesNBA API:循环字典以获取数据帧
【发布时间】:2021-02-18 03:32:20
【问题描述】:

我正在尝试获取 NBA 所有现役球员职业统计数据的完整数据库。

我对 Python 比较陌生,正在尝试通过查找每个 PlayerCareerStat 数据帧的 playerID 来找出迭代循环函数的方法。最后,我将对数据进行汇总和分组,以便于阅读,但我会尝试按赛季返回所有球员职业统计数据的列表。

我可以使用 player.get_active_players() 端点返回所有玩家的列表,他们的 player_id: [1]: https://i.stack.imgur.com/BFxgv.png

这样,我试图通过 PlayerCareerStats() 端点中的每个数据帧循环播放 Player_id ...我想?由于此端点的参数需要一个 player_id,我似乎无法获得所有玩家。请看图[1]:https://i.stack.imgur.com/skM8Y.png

有谁知道我如何能够得到我想要找到的输出?

【问题讨论】:

  • 不要发布代码的照片。贴出实际代码。

标签: python nba-api


【解决方案1】:

当你创建一个函数时,它会在到达return 时结束。因此,您的函数会返回玩家 ID,并且不会转到您尝试获取职业统计数据的部分。

所以去掉那个return player['id'],函数应该一直运行:

from nba_api.stats.static import players
from nba_api.stats.endpoints import playercareerstats
import pandas as pd


def get_nba_id():
    nba_players = players.get_active_players()
    
    for player in nba_players:
        career_stats = playercareerstats.PlayerCareerStats(player_id=player['id'])
        career_df = career_stats.get_data_frames()[0]
        career_df['NAME'] = player['full_name']
        print(career_df)

【讨论】:

  • 不幸的是,这段代码仍然不起作用
  • 好的。什么不起作用?你有错误吗?
  • 其次,你真的在​​调用这个函数吗?
  • 不行,我很抱歉我还在学习……我没有调用这个函数。感谢您抽出宝贵时间回复。
  • @olideepo,很酷。很高兴它奏效了。如果满足您的需求,请务必接受该解决方案
猜你喜欢
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 2016-04-28
相关资源
最近更新 更多