NBA API:循环字典以获取数据帧

问题描述

我正在尝试获取一个包含 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

有谁知道我怎样才能得到我想要找到的输出

解决方法

当你创建一个函数时,它会在到达 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)