Parquet is a columnar storage format that’s much more efficient than CSV for large datasets.
# Export to Parquet (works with both pandas and polars)laps.to_parquet("monaco_race_laps.parquet")# With compressionlaps.to_parquet("monaco_race_laps.parquet", compression="snappy")# Read backimport pandas as pdlaps_loaded = pd.read_parquet("monaco_race_laps.parquet")
# Export to JSONlaps.to_json("monaco_race_laps.json", orient="records", indent=2)# Compact formatlaps.to_json("monaco_race_laps_compact.json", orient="records")# Split format (better for large datasets)laps.to_json("monaco_race_laps_split.json", orient="split")
import numpy as np# Convert to numpy for scikit-learn, tensorflow, pytorchlap_features = laps[["LapTime", "Sector1Time", "Sector2Time", "Sector3Time"]].to_numpy()# Save as .npy filenp.save("lap_features.npy", lap_features)# Telemetry as numpytel_array = telemetry[["Speed", "Throttle", "Brake", "RPM"]].to_numpy()np.save("telemetry_features.npy", tel_array)
# CSV with proper encodinglaps.to_csv("monaco_for_tableau.csv", index=False, encoding="utf-8-sig")# Or use Hyper format for Tableau (requires tableauhyperapi)# From tableauhyperapi import hyperprocess, connection, tabledefinition# ... (see Tableau documentation)
Efficiently export telemetry for multiple drivers.
def export_all_telemetry(session, lap_type="fastest", output_dir="telemetry"): """Export telemetry for all drivers.""" import os os.makedirs(output_dir, exist_ok=True) if lap_type == "fastest": # Use parallel fetching for speed tels = session.get_fastest_laps_tels(by_driver=True) for driver, tel in tels.items(): filename = f"{output_dir}/{driver}_fastest.parquet" tel.to_parquet(filename) print(f"Exported: {driver}") return len(tels)session = tif1.get_session(2025, "Silverstone Grand Prix", "Qualifying")count = export_all_telemetry(session)print(f"Exported telemetry for {count} drivers")