You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pybaseball导出赛季击球数据时仅获取部分数据的问题求助

使用pybaseball导出赛季击球数据时仅获取部分数据的问题求助

看起来你在使用pybaseball拉取赛季击球数据时遇到了数据不全的问题,我来帮你分析下可能的原因:

首先先还原你的问题场景和代码:
你想要拉取2022-2024赛季的击球数据,但实际运行代码后生成的CSV只有526行,仅包含每支球队的少量球员。你的代码如下:

# Collect batting stats for the 2022, 2023, and 2024 seasons
try:
    print("Collecting batting stats from 2022 to 2024...")
    batting_data = batting_stats(2021, 2024, league="all", ind=1 )
    
    # Save the collected data to a CSV file
    batting_data.to_csv('batting_stats_2021_2024.csv', index=False)
    print("Batting data collection complete. File saved as 'batting_stats_2022_2024.csv'.")

except Exception as e:
    print(f"An error occurred: {e}")

你提到用的是pybaseball库,生成了CSV但数据量远低于预期。

问题的核心原因

你代码里的ind=1参数是关键!在pybaseball的batting_stats函数中,ind参数用于指定数据范围:

  • ind=1:仅返回**独立联盟(Independent Leagues)**的球员数据,这类联盟的球员基数本身就很小,所以只有526行结果
  • ind=0(默认值):返回美国职业棒球大联盟(MLB)的球员数据,这才是你需要的全量大联盟球员数据

另外还有个小细节:你的代码注释和打印信息标注的是2022-2024赛季,但实际调用batting_stats时传入的是2021, 2024,如果只需要2022-2024的数据,记得把起始年份改成2022哦。

修正后的代码

把ind=1改成ind=0(或者直接删掉这个参数,因为默认就是0),同时修正年份范围匹配你的需求:

# Collect batting stats for the 2022, 2023, and 2024 seasons
try:
    print("Collecting batting stats from 2022 to 2024...")
    # 移除ind参数(默认ind=0),或者显式设置ind=0,同时修正年份范围
    batting_data = batting_stats(2022, 2024, league="all")
    
    # Save the collected data to a CSV file
    batting_data.to_csv('batting_stats_2022_2024.csv', index=False)
    print("Batting data collection complete. File saved as 'batting_stats_2022_2024.csv'.")

except Exception as e:
    print(f"An error occurred: {e}")

额外验证点

  • 运行修正后的代码后,你可以先打印batting_data.shape看看行数,大联盟每个赛季的击球数据大概有上千行,2022-2024三个赛季的话应该会有几千行数据
  • 如果还是有问题,可以检查league="all"是否符合你的需求,这个参数会包含美联(AL)和国联(NL)的所有数据,如果你只需要某一个联盟,可以改成league="AL"或league="NL"

备注:内容来源于stack exchange,提问作者Chad Broussard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:43:04