PythonでF1データ分析を始める|FastF1の使い方【初心者チュートリアル】

graphical user interface

F1のラップタイムやテレメトリーデータを、Pythonで分析できることをご存じでしょうか。「プログラミングは難しそう」と感じた方も、少しだけ待ってください。

FastF1というライブラリを使えば、F1の公式ライブタイミングデータを取得し、ラップタイムや速度、スロットルなどのテレメトリーを簡単に分析できます。

この記事では、Python初心者でも分かるように、FastF1の使い方をチュートリアル形式で解説します。また、基本的には自分でコードを書く必要はなく、コードをコピー&ペーストするだけでF1データを取得できるようにしています。

FastF1 Telemetry Data Example
FastF1で取得したテレメトリーデータ

FastF1とは?

FastF1は、PythonからF1の公式ライブタイミングデータを取得できるライブラリです。ラップタイムやセクタータイム、テレメトリーなどのデータを取得し、グラフとして可視化することもできます。

なお、FastF1は非公式のライブラリですが、公開されている公式のライブタイミングデータをもとに分析できる点が特徴です。個人でのデータ分析用途として広く利用されています。

取得できる主なデータには、次のようなものがあります。

  • ラップタイム
  • セクタータイム
  • 速度(Speed)
  • スロットル(Throttle)
  • ブレーキ(Brake)
  • トラックマップ

これらのデータを組み合わせることで、例えば次のような分析が可能になります。

  • ドライバー同士のラップタイム比較
  • 予選アタックラップのテレメトリー比較
  • コーナーごとの速度差の分析

こうしたデータ分析は、専門的なツールを使わなくても、FastF1を使えばPythonから簡単に行うことができます。次のパートでは、FastF1を使うための準備として Pythonの実行環境とライブラリのインストール方法 を解説します。

Python実行環境を準備する

FastF1を使うには、Pythonを実行できる環境が必要です。すでにPython環境がある場合は、そのまま利用できます。

もし環境がない場合は、ブラウザだけでPythonを実行できる Google Colab を利用するのがおすすめです。Google ColabはGoogleが提供している無料のサービスで、ソフトウェアをインストールしなくてもPythonを実行できます。

Google Colabの基本的な使い方はシンプルで、次の手順ですぐに始められます。

Google Colabにアクセスする(Googleアカウントがあればすぐに利用可能)

Google Colab 画面

「新しいノートブック」を作成する

Google Colab 新しいノートブック

これでPythonの実行環境は準備完了です。

この記事ではGoogle Colabの詳しい使い方までは解説しませんが、コードをコピー&ペーストして実行するだけでFastF1を試せるように進めていきます。

FastF1をインストールする

FastF1を使用するには、まずライブラリをインストールします。Pythonでは pip というパッケージ管理ツールを使って、簡単にライブラリをインストールできます。

Google Colabを使用している場合は、次のコードを実行してください。

!pip install fastf1

このコマンドを実行すると、FastF1のインストールが開始されます。

インストールが完了すれば、FastF1を使ってF1のデータを取得できるようになります。

次のパートでは、実際にFastF1を使ってラップタイムデータを取得するコードを実行していきます。

FastF1でF1データを取得してみる

それでは実際に、FastF1を使ってF1のデータを取得してみましょう。まずは、2025年の日本GPの予選セッションからラップタイムデータを取得します。

次のコードをコピーして、順に実行してください。

import fastf1
import os
os.makedirs('cache', exist_ok=True)

# キャッシュを有効化
fastf1.Cache.enable_cache('cache')
# セッションを取得(年 / グランプリ / セッション)
session = fastf1.get_session(2025, "Japan", "Q")
session.load()
# ラップデータを取得
laps = session.laps

# フェルスタッペンのラップデータを取得
ver_laps = laps.pick_drivers('VER')

# ラップタイムを表示(全ラップ)
print(ver_laps[['Driver', 'LapNumber', 'LapTime']])

コードを実行すると、次のようなラップタイムのデータが表示されます。

 Driver  LapNumber                LapTime
0 VER 1.0 NaT
1 VER 2.0 0 days 00:01:28.360000
2 VER 3.0 0 days 00:02:04.304000
3 VER 4.0 NaT
4 VER 5.0 0 days 00:01:27.943000
5 VER 6.0 0 days 00:01:50.649000
6 VER 7.0 NaT
7 VER 8.0 0 days 00:01:27.502000
8 VER 9.0 0 days 00:02:04.397000
9 VER 10.0 NaT
10 VER 11.0 0 days 00:01:37.873000
11 VER 12.0 NaT
12 VER 13.0 0 days 00:01:27.278000
13 VER 14.0 0 days 00:01:42.881000
14 VER 15.0 NaT
15 VER 16.0 0 days 00:01:26.983000
16 VER 17.0 0 days 00:02:02.472000

このように、FastF1を使うとF1のラップタイムデータをPythonから簡単に取得できます。

なお、NaT と表示されている部分はラップタイムが記録されていない周回(アウトラップやインラップなど)を意味します。正常なデータなので、エラーではありません。

コードの解説

ここからは、先ほど実行したコードの内容を順番に解説していきます。まずは、FastF1を使うための準備部分です。

FastF1のライブラリのインポートと一時保存フォルダの作成

import fastf1
import os
os.makedirs('cache', exist_ok=True)# キャッシュを有効化
fastf1.Cache.enable_cache('cache')

このコードでは、FastF1を使用するための準備を行っています。

まず、

import fastf1

で、FastF1ライブラリを読み込みます。

次に、

import os
os.makedirs('cache', exist_ok=True)

では、cache というフォルダを作成しています。このフォルダは、取得したF1データを一時的に保存するために使われます。

最後に、

fastf1.Cache.enable_cache('cache')

で、キャッシュ機能を有効にしています。

キャッシュを使うことで、一度取得したデータを保存できるため、同じセッションを再度読み込む際に高速に処理できるようになります。

取得する開催国とセッションの指定

# セッションを取得(年 / グランプリ / セッション)
session = fastf1.get_session(2025, "Japan", "Q")
session.load()

このコードでは、取得したいレースのセッションを指定しています。

まず、

fastf1.get_session()

は、F1の特定のセッションデータを取得するための関数です。

引数には次の3つを指定します。

年, グランプリ名, セッション

例えば、

2025, "Japan", "Q"

と指定すると、「2025年 日本GPの予選セッション」という意味になります。

それぞれの意味は次の通りです。

  • Japan → 日本GP
  • Q → 予選

セッションは次のように指定できます。

  • FP1(フリー走行1)
  • FP2(フリー走行2)
  • FP3(フリー走行3)
  • SQ(スプリント予選)
  • S(スプリント)
  • Q(予選)
  • R(決勝)

そして、もう一つ重要なのが次のコードです。

session.load()

これは、指定したセッションのデータを実際に読み込む処理です。この処理を実行しないと、ラップデータやテレメトリーデータは取得できません。

取得するデータとドライバーの指定

# ラップデータを取得
laps = session.laps

# フェルスタッペンのラップデータを取得
ver_laps = laps.pick_drivers('VER')

# ラップタイムを表示(全ラップ)
print(ver_laps[['Driver', 'LapNumber', 'LapTime']])

このコードでは、ラップデータの取得と、特定ドライバーのデータ抽出を行っています。

まず、

laps = session.laps

で、セッション内のすべてのラップデータを取得します。

この laps には、各ラップに関するさまざまな情報が含まれています。主な項目は次の通りです。

  • Driver(ドライバー)
  • LapTime(ラップタイム)
  • Sector1Time / Sector2Time / Sector3Time
  • Compound(タイヤの種類)

これらのデータを使うことで、ドライバーのパフォーマンスやレース展開を詳しく分析できます。

次に、

ver_laps = laps.pick_drivers('VER')

で、フェルスタッペン(VER)のラップデータだけを抽出しています。

FastF1では、ドライバーを3文字のコードで指定します。代表的な例は次の通りです。

  • VER:マックス・フェルスタッペン
  • HAM:ルイス・ハミルトン
  • NOR:ランド・ノリス
  • LEC:シャルル・ルクレール

このように pick_drivers() を使うことで、特定のドライバーや複数ドライバーのデータを簡単に取り出すことができます。

最後に、

print(ver_laps[['Driver', 'LapNumber', 'LapTime']])

で、ラップタイムを一覧として表示しています。ドライバーごとのデータを簡単に取り出すことができます。次のステップでは、取得したデータを使って ドライバー同士のラップタイムを比較する方法 を紹介します。

ドライバーの最速ラップを取得する

先ほどはセッション全体のラップデータを確認しましたが、FastF1では特定のドライバーに絞ってデータを取得することもできます。

ここでは例として、マックス・フェルスタッペンの最速ラップを取得してみます。

次のコードをコピーして実行してください。

# フェルスタッペンのラップデータを取得
ver_laps = session.laps.pick_drivers('VER')

# 最速ラップを取得
fastest_lap = ver_laps.pick_fastest()

# ラップタイムを表示
print(fastest_lap['LapTime'])

コードを実行すると、フェルスタッペンの最速ラップタイムが表示されます。

0 days 00:01:26.983000

【PR】F1ゲームをよりリアルに楽しめるハンコン

FastF1でドライバーのテレメトリーを分析していると、「実際に自分でもこの走りを体感してみたい」と思うことはありませんか? そんな方には、ステアリング型コントローラー(ハンコン)を使ったレースゲーム体験がぴったりです。

👉【PR】Logicool G29 ドライビングフォース(PS5 / PS4 / PC対応)

PR Logicool G29

Logicool G29は、定番のハンコンモデルで、PS5・PS4・PCに対応。 

フォースフィードバック機能により、路面の感触やマシンの挙動をリアルに再現してくれます。 ブレーキングやコーナリングの感覚を手元で感じられるので、テレメトリーで見たスピードやアクセル操作を自分で体験する感覚が味わえます。

▶︎ F1-DashやGP TEMPOなど、無料で使えるライブタイミングやテレメトリーデータの解析方法を紹介しています⬇️

F1公式のサブスクリプションサービス F1 TV Access では、レースのライブ視聴はできないものの、F1公式のライブタイミングやリアルタイムのテレメトリーデータを確認できます。さらに、過去のレースアーカイブにもアクセス可能です。

月額360円でどこまでの機能が使えるのか、メリットや注意点も含めて詳しくまとめています。

▶︎ F1 TV Accessでできること・できないことを解説した記事はこちら⬇️

まとめ

FastF1を使えば、PythonからF1のライブタイミングデータを取得し、ラップタイムやセクタータイムなどの情報を簡単に確認できます。コードも基本的にはコピー&ペーストで実行できるため、Python初心者でも手軽にF1データ分析を始められます。

また、FastF1では今回紹介したラップタイム以外にも、さまざまな分析が可能です。例えば、ドライバー同士のラップタイム比較や、テレメトリー(速度・スロットル・ブレーキ)の分析、サーキットのトラックマップ作成、コーナーごとの速度差の可視化などが行えます。

これらの分析方法については、今後の記事で順番に解説していきます。今回の内容をベースに、ぜひ自分でもデータを取得して試してみてください。

次の記事では、セッションのラップタイムからドライバーごとの順位表を作成する方法を解説します。実際のリザルトのようなテーブルを作成できるようになるので、ぜひ続けてチェックしてみてください。

─── 関連記事 ───

以下の記事では、2026年のF1・MotoGPの視聴方法をわかりやすくまとめています。日本の公式配信サービスに加え、VPNを使った海外配信サービスの利用ガイドも紹介しているので、モータースポーツ観戦の選択肢を広げたい方はぜひ参考にしてみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

SHARE