The sprint_results.csv table contains results from Formula 1 sprint races, a shorter race format introduced in 2021 that determines the grid for the main Grand Prix.
Schema
| Field | Type | Description |
|---|
resultId | integer | Unique identifier for each sprint result |
raceId | integer | Foreign key to races.csv |
driverId | integer | Foreign key to drivers.csv |
constructorId | integer | Foreign key to constructors.csv |
number | integer | Driver’s car number |
grid | integer | Starting grid position for the sprint |
position | integer | Finishing position (null if DNF) |
positionText | string | Text representation of finish position |
positionOrder | integer | Numerical order of finish |
points | float | Points scored in the sprint race |
laps | integer | Number of laps completed |
time | string | Total sprint race time (for finishers) |
milliseconds | integer | Total sprint race time in milliseconds |
fastestLap | integer | Lap number of fastest lap |
fastestLapTime | string | Fastest lap time (MM:SS.mmm format) |
statusId | integer | Foreign key to status.csv (finish/retirement reason) |
rank | integer | Rank of fastest lap among all drivers |
Sprint races were introduced in 2021. This table only contains data for races with sprint format. Fields contain \N for null values, particularly for DNF results.
Sample Data
| resultId | raceId | driverId | constructorId | grid | position | points | laps | time |
|---|
| 1 | 1061 | 830 | 9 | 2 | 1 | 3 | 17 | 25:38.426 |
| 2 | 1061 | 1 | 131 | 1 | 2 | 2 | 17 | +1.430 |
| 3 | 1061 | 822 | 131 | 3 | 3 | 1 | 17 | +7.502 |
| 4 | 1061 | 844 | 6 | 4 | 4 | 0 | 17 | +11.278 |
Relationships
References:
sprint_results.raceId → races.raceId
sprint_results.driverId → drivers.driverId
sprint_results.constructorId → constructors.constructorId
sprint_results.statusId → status.statusId
Dataset Statistics
- Total Records: 480 sprint results
- First Sprint Race: 2021 British Grand Prix
- Sprint Races per Season: Varies (typically 3-6 per season)
Sprint races are shorter races (typically 100km or ~30 minutes) held on Saturday:
- 2021-2022: Top 3 scored points (3-2-1)
- 2023 onwards: Top 8 score points (8-7-6-5-4-3-2-1)
- Sprint results determine the starting grid for Sunday’s Grand Prix
- Usually 17-23 laps depending on the circuit
Example Queries
Get all sprint race winners
import pandas as pd
sprint_results = pd.read_csv('sprint_results.csv')
sprint_winners = sprint_results[sprint_results['position'] == 1]
print(sprint_winners[['raceId', 'driverId', 'points', 'time']])
Find sprint races for a specific season
races = pd.read_csv('races.csv')
sprint_races_2023 = races[
(races['year'] == 2023) &
(races['sprint_date'].notna())
]
print(sprint_races_2023[['round', 'name', 'sprint_date']])
Analyze points scored in sprints
points_by_driver = sprint_results.groupby('driverId')['points'].sum()
top_scorers = points_by_driver.sort_values(ascending=False).head(10)
print(top_scorers)
Compare sprint grid vs finish positions
finishers = sprint_results[sprint_results['position'] != '\\N'].copy()
finishers['position'] = pd.to_numeric(finishers['position'])
finishers['positions_gained'] = finishers['grid'] - finishers['position']
print(finishers[['raceId', 'driverId', 'grid', 'position', 'positions_gained']].head())
Get sprint podiums for a driver
driver_id = 1 # Lewis Hamilton
driver_podiums = sprint_results[
(sprint_results['driverId'] == driver_id) &
(sprint_results['position'] <= 3)
]
print(f"Sprint podiums: {len(driver_podiums)}")
Join with main race results
results = pd.read_csv('results.csv')
# Compare sprint finish to main race finish
comparison = sprint_results.merge(
results[['raceId', 'driverId', 'position']],
on=['raceId', 'driverId'],
suffixes=('_sprint', '_race')
)
print(comparison[['raceId', 'driverId', 'position_sprint', 'position_race']])
Notes
- Sprint races are typically 100km in distance (about 1/3 of a Grand Prix)
- The sprint qualifying format has evolved since its introduction
- Sprint results determine the starting grid for the main Grand Prix
- Points allocation changed from 3-2-1 (2021-2022) to 8-7-6-5-4-3-2-1 (2023+)
- Not all races in a season have sprint format
\N represents null values for DNF and missing data
- Sprint races don’t count towards statistics like race wins or podiums in official records