¿Qué podemos analizar con los datos de una carrera de F1? Ejemplo con el GP de Baku 2026 y Python
¿Qué podemos analizar con los datos de una carrera de F1? Ejemplo con el GP de Baku 2026 y Python
Cuando pensamos en analizar una carrera de Fórmula 1, normalmente pensamos en preguntas como: ¿Quién ganó? ¿Quién quedó segundo? ¿Quién hizo la vuelta más rápida?
Pero cuando tenemos los datos de la carrera, podemos hacer muchas más preguntas.
Y ahí es donde comienza realmente el análisis de datos.
En este proyecto utilicé datos del Gran Premio de Azerbaiyán 2026 y Python para demostrar una idea muy sencilla:
No siempre necesitamos más datos. Muchas veces necesitamos aprender a mirar los datos que ya tenemos de otra manera.
🏎️ De una tabla de resultados a un análisis de datos
Los datos obtenidos de la API contienen información como:
- Piloto
- Equipo
- Posición final
- Posición de salida
- Vueltas completadas
- Estado de la carrera
- Información del piloto y del equipo
A primera vista parece simplemente una tabla de resultados.
Pero podemos comenzar a hacer preguntas.
Por ejemplo:
- ¿Quiénes abandonaron?
- ¿Quién recuperó más posiciones?
- ¿Quién perdió más posiciones?
- ¿Qué equipos obtuvieron más puntos?
Y cada pregunta puede convertirse en un pequeño análisis.
🚨 ¿Quiénes abandonaron en Baku 2026?
Primero podemos utilizar el estado de los resultados para identificar a los pilotos cuyo resultado aparece como DNF.
En Baku encontramos 7 abandonos.
Pero aquí aparece algo interesante.
Además del nombre del piloto, tenemos el número de vueltas completadas.
Eso nos permite transformar una simple lista de abandonos en una pregunta diferente:
¿En qué momento de la carrera se produjeron los abandonos?
Por ejemplo, Valtteri Bottas aparece con 49 vueltas completadas, mientras que Lance Stroll aparece con solamente 7 vueltas.
Así que incluso dentro de una misma categoría —los abandonos— podemos encontrar información diferente.
📈 ¿Quién recuperó más posiciones?
Aquí tenemos uno de mis análisis favoritos porque solamente necesitamos dos datos:
posición de salida + posición final
Podemos calcular las posiciones ganadas utilizando:
Posiciones ganadas = Grid - Posición final
Por ejemplo, Andrea Kimi Antonelli comenzó en la posición 16 y terminó en la 5.
Eso significa que recuperó:
11 posiciones.
Y automáticamente aparece una nueva pregunta:
¿Quién consiguió la mayor remontada de la carrera?
Entre los principales movimientos positivos encontramos:
- Andrea Kimi Antonelli: +11 posiciones
- Arvid Lindblad: +8 posiciones
- Nico Hülkenberg: +7 posiciones
- Max Verstappen: +6 posiciones
- Sergio Pérez: +5 posiciones
📉 ¿Quién perdió más posiciones?
Podemos hacer exactamente lo contrario.
Posiciones perdidas = Posición final - Grid
Pero aquí hay una decisión importante:
¿Debemos incluir a los pilotos que abandonaron?
Para este análisis decidí no incluir los abandonos, porque queremos comparar el rendimiento de los pilotos que terminaron la carrera.
| Piloto | Salida | Final | Posiciones perdidas |
|---|---|---|---|
| Oscar Piastri | 3 | 14 | 11 |
| Charles Leclerc | 2 | 4 | 2 |
| Liam Lawson | 11 | 12 | 1 |
Y nuevamente aparece una pregunta interesante:
¿Cómo pasó Piastri de salir tercero a terminar decimocuarto?
La tabla no nos responde necesariamente el porqué, pero sí nos dice qué ocurrió.
Y esa diferencia es fundamental en análisis de datos.
🔎 Los datos nos dicen qué ocurrió, pero las preguntas nos dicen qué analizar
Esta es probablemente la parte más importante de este proyecto.
Podemos tener cientos o miles de registros y no obtener ninguna conclusión interesante si no sabemos qué buscar.
En cambio, una pregunta sencilla puede transformar los mismos datos.
Una de las razones por las que me gusta trabajar con Python es que podemos convertir estas preguntas en procesos reproducibles.
En lugar de revisar manualmente una tabla después de cada carrera, podemos programar el análisis.
Por ejemplo:
df_baku["posiciones_ganadas"] = (
df_baku["grid"] - df_baku["position"]
)
A partir de ahí podemos ordenar los resultados, filtrar los pilotos que nos interesan y crear nuestras visualizaciones.
Y lo mejor es que el mismo código puede utilizarse nuevamente para otra carrera.
Solo necesitamos cambiar los datos.
📊 De los datos al contenido
Este proyecto también muestra algo que me parece muy interesante:
Un mismo análisis puede convertirse en diferentes piezas de contenido.
- 📊 Un gráfico de abandonos
- 🏎️ Un Short sobre la remontada de Antonelli
- 📉 Un Short sobre los pilotos que perdieron posiciones
- 📈 Un análisis de los equipos
- 📝 Un artículo explicando todo el proceso
Es decir, un conjunto de datos puede generar muchas historias diferentes.
💡 La pregunta es el verdadero punto de partida
Cuando comenzamos un proyecto de análisis de datos, muchas veces pensamos:
“¿Qué datos puedo conseguir?”
Pero también podemos comenzar de otra manera:
“¿Qué quiero descubrir?”
Después buscamos los datos necesarios para responder esa pregunta.
Y cuando ya tenemos los datos, debemos aprender a observarlos.
Porque una tabla puede parecer solamente una colección de números.
Pero detrás de esos números puede haber:
- Tendencias
- Diferencias
- Anomalías
- Patrones
- Comparaciones
- Nuevas preguntas
Y ahí es donde empieza el verdadero análisis de datos.
🏁 Conclusión
El Gran Premio de Baku 2026 es solamente un ejemplo.
La misma idea puede aplicarse a Fórmula 1, fútbol, tenis, videojuegos, economía, redes sociales o prácticamente cualquier área donde tengamos datos.
No siempre necesitamos encontrar un dataset enorme o complicado.
A veces solamente necesitamos:
Y cuando aprendemos a hacer las preguntas correctas, una simple tabla de datos puede convertirse en una historia.
🔗 Proyecto
En este análisis utilicé Python, Pandas y una API de Fórmula 1 para obtener y transformar los datos de la carrera.
Puedes seguir los diferentes análisis de este proyecto en los Shorts de Programación Para Todos.
Solo necesitamos aprender qué preguntarles.
programacionparatodos.com
SPORT ANALYTICS · F1
Comentarios
Publicar un comentario
Dejanos tus dudas y comentarios