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 年推出的一项新技术,使用高速摄像机测量挥棒指标。它提供了以前无法获得的挥棒机械洞察。
关键指标
| Metric | Description |
|---|---|
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)
数据集模式
主列
| Column | Type | Description |
|---|---|---|
year | int | 赛季年份(2024 或 2025) |
player_name | str | 球员姓名 |
player_id | int | MLBAM 球员 ID |
bat_speed | float | 平均球棒速度(mph) |
swing_length | float | 平均挥棒长度(feet) |
squared_up_rate | float | 正面接触率(0‑100%) |
attack_angle | float | 平均攻击角度(degrees) |
blast_avg | float | BLAST 分数(0‑100) |
fast_swing_rate | float | 快速挥棒比例(0‑100%) |
swords_rate | float | 区域内挥空比例(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: