MLB 球棒追踪数据集 (2024-2025)

发布: (2026年2月23日 GMT+8 13:30)
4 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您想要翻译的正文内容,我将把它翻译成简体中文并保留原有的格式。

介绍

我已在 Kaggle 上发布了包含 2024 和 2025 赛季 MLB 球棒追踪指标的数据集。该数据集提供了挥棒速度、攻击角度以及 MLB 于 2024 年推出的其他球棒追踪统计数据。

数据集概览

MLB Bat Tracking (2024-2025)

  • 击球手: 452 名击球手(每赛季 226 名)
  • 列数: 19 列
  • 赛季: 2024, 2025
  • Source: Baseball Savant (directly accessed, not via pybaseball)

什么是 Bat Tracking?

Bat Tracking 是 MLB 在 2024 年推出的一项新技术,使用高速摄像机测量挥棒指标。它提供了以前无法获得的挥棒机械洞察。

关键指标

MetricDescription
bat_speed接触时的挥棒速度(英里/小时)
swing_length挥棒路径长度(英尺)
squared_up_rate最佳球棒接触率(0‑1)
attack_angle挥棒平面角度(度)
blast_avg同时具备高速度和最佳接触的挥棒比例

数据收集

此数据集直接使用自定义爬取从 Baseball Savant 收集,因为 pybaseball 尚未支持击球追踪数据。

Data Source:

import pandas as pd
import requests
from bs4 import BeautifulSoup

# Example: Fetching 2024 bat tracking data
url = "https://baseballsavant.mlb.com/leaderboard/bat-tracking?year=2024"
response = requests.get(url)
# Parse HTML and extract table data
# (Full implementation available in the dataset repository)

数据集模式

主列

ColumnTypeDescription
yearint赛季年份(2024 或 2025)
player_namestr球员姓名
player_idintMLBAM 球员 ID
bat_speedfloat平均球棒速度(mph)
swing_lengthfloat平均挥棒长度(feet)
squared_up_ratefloat正面接触率(0‑100%)
attack_anglefloat平均攻击角度(degrees)
blast_avgfloatBLAST 分数(0‑100)
fast_swing_ratefloat快速挥棒比例(0‑100%)
swords_ratefloat区域内挥空比例(0‑100%)

在 Kaggle 笔记本中的使用

加载数据集

import pandas as pd

# Load bat tracking data
df = pd.read_csv('/kaggle/input/mlb-bat-tracking-2024-2025/bat_tracking_2024_2025.csv')

print(f"Total records: {len(df)}")
print(f"Seasons: {df['year'].unique()}")
print(f"Average bat speed: {df['bat_speed'].mean():.2f} mph")

年度间比较

import matplotlib.pyplot as plt

# Compare bat speed distribution between seasons
df_2024 = df[df['year'] == 2024]
df_2025 = df[df['year'] == 2025]

plt.hist(df_2024['bat_speed'], alpha=0.5, label='2024', bins=20)
plt.hist(df_2025['bat_speed'], alpha=0.5, label='2025', bins=20)
plt.xlabel('Bat Speed (mph)')
plt.ylabel('Frequency')
plt.legend()
plt.title('Bat Speed Distribution: 2024 vs 2025')
plt.show()

分析示例

按挥棒速度的顶尖表现者

# Top 10 fastest bat speeds in 2025
top_bat_speed = (
    df[df['year'] == 2025]
    .nlargest(10, 'bat_speed')[['player_name', 'bat_speed', 'squared_up_rate', 'attack_angle']]
)
print(top_bat_speed)

对齐率分析

import seaborn as sns
import matplotlib.pyplot as plt

# Relationship between bat speed and squared‑up rate
sns.scatterplot(data=df, x='bat_speed', y='squared_up_rate', hue='year', alpha=0.6)
plt.xlabel('Bat Speed (mph)')
plt.ylabel('Squared‑Up Rate (%)')
plt.title('Bat Speed vs Squared‑Up Rate')
plt.show()

来自球棒追踪数据的洞察

什么造就优秀击球手?

球棒追踪数据揭示,精英击球手通常具备:

  • 高棒速(75+ mph)
  • 高正面率(30%+)
  • 最佳攻击角度(大多数击球手为10‑20°)
  • 短摆幅(高效的挥棒机械)

摆动特征对比

不同类型的球员展现出不同的摆动特征:

  • 力量型击球手: 高棒速,攻击角度陡峭
  • 接触型击球手: 摆动长度较短,正面率高
  • 速度型球员: 挥棒速度快,攻击角度浅

链接

  • 数据集:
  • GitHub 仓库:
  • Baseball Savant:
0 浏览
Back to Blog

相关文章

阅读更多 »