de.wikipedia.org

Datei:Womens hour records progression.svg – Wikipedia

  • ️Sun Aug 21 2022
Quelltext

Python code

#!/usr/bin/env python
# coding: utf-8
# In[1]:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# In[2]:
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
# In[3]:
# Set plotting style
plt.style.use("seaborn-v0_8-white")
RECORD_TO_TEXT = {
    "uci": "UCI Record",
    "best": "Best Human Effort",
    "unified": "Unified Record",
}
CURRENT_PALLETE = sns.color_palette()
PLOT_COLORS = {
    "uci": CURRENT_PALLETE[0],
    RECORD_TO_TEXT["uci"]: CURRENT_PALLETE[0],
    "best": CURRENT_PALLETE[1],
    RECORD_TO_TEXT["best"]: CURRENT_PALLETE[1],
    "unified": CURRENT_PALLETE[2],
    RECORD_TO_TEXT["unified"]: CURRENT_PALLETE[2],
}
WIDTH = 12
HEIGHT = 7
get_ipython().run_line_magic('matplotlib', 'inline')
# # Load the data
# 
# I have already scraped the HTML, read it into Pandas, and cleaned it up. So I'll just load that cleaned data.
# In[4]:
df = pd.read_json("./hour_record_dataframe.json", orient="table")
# In[5]:
# Rename some riders who have *REALLY* long names
df = df.replace(
    {
        "Leontien Zijlaard-van Moorsel": "Leontien van Moorsel",
        "Molly Shaffer Van Houweling": "Molly Van Houweling",
    }
)
# In[6]:
df.head()
# # Plotting
# In[7]:
def draw_bands(ax, ticks=None):
    """Add grey bands to the plot.
    Args:
        ax: a matplotlib axes object.
        ticks: a list of tick postions, to use instead of the ones that come
            with ax.
    """
    if ticks is None:
        ticks = ax.get_xticks(minor=False)
    for i in range(0, len(ticks), 2):
        # Check for the end of the array
        if i >= len(ticks) or i + 1 >= len(ticks):
            return
        # Draw a band
        left_tick = ticks[i]
        right_tick = ticks[i + 1]
        plt.axvspan(left_tick, right_tick, color="0.97", zorder=-2)
    ticks = ax.get_xticks(minor=False)
# In[8]:
def draw_legend(plt):
    """Draw the legend on the specified plot.
    Args:
        plt (matplotlib.pyplot): pyplot object
    """
    leg = plt.legend(
        loc="upper left",
        fontsize=18,
        ncol=1,
        frameon=1,
        fancybox=True,
        # The bellow commands remove the lines in the legend
        handlelength=0,
        handletextpad=0,
        markerscale=0,
    )
    # Turn on and theme the frame
    frame = leg.get_frame()
    frame.set_linewidth(1)
    frame.set_alpha(1)
    frame.set_facecolor("white")
    frame.set_edgecolor("black")
    # Set the legend text color to match the line color
    handles, _ = ax.get_legend_handles_labels()
    texts = leg.get_texts()
    for _, text in zip(handles, texts):
        text.set_color(PLOT_COLORS[text.get_text()])
    fig.tight_layout()
# In[9]:
def annotate_point_with_name(row, color, nudges):
    rider = row["rider"]
    distance = row["distance (km)"]
    date = row["date"]
    text = f"{rider} ({distance} km)  "
    # Try to get nudges
    adjust = nudges.get((rider, distance), (0, 0))
    x_adjust = adjust[0] * 365.0  # Convert to years
    x_pos = date + pd.to_timedelta(x_adjust, unit="D")
    y_pos = distance + adjust[1]
    plt.text(
        x_pos,
        y_pos,
        text,
        horizontalalignment="right",
        verticalalignment="center",
        color=color,
        fontsize=16,
        fontweight="bold",
    )
# In[10]:
def plot_steps_and_markers(df, nudges, ax):
    plt.sca(ax)
    for record in df["record"].unique():
        color = PLOT_COLORS[record]
        df_tmp = df[df["record"] == record]
        heights = list(df_tmp["distance (km)"].values)
        years = list(df_tmp["date"].values)
        # Find out when the unified record became superior to this record
        r = heights[-1]
        df_uni = df[(df["record"] == "unified") & (df["distance (km)"] >= r)]
        limit = min(df_uni["date"])
        # Extend up to that date
        heights += [heights[-1]]
        years += [limit]
        plt.step(
            x=years,
            y=heights,
            where="post",
            linewidth=2.5,
            color=color,
            label=RECORD_TO_TEXT[record],
        )
        plt.plot(years[:-1], heights[:-1], "o", color=color, markersize=10)
        for index, row in df_tmp.iterrows():
            annotate_point_with_name(row, color, nudges)
# In[11]:
df_men = df[(df["gender"] == "men") & (df["success"] == True)]
fig, ax = plt.subplots(figsize=(WIDTH, HEIGHT))
annotation_nudge = {
    ("Eddy Merckx", 49.431): (9, 0.25),
    ("Chris Boardman", 49.441): (4, 0.25),
    ("Ondřej Sosenka", 49.7): (5, 0.33),
    ("Tony Rominger", 55.291): (0.2, -0.36),
}
ax.set_ylabel("Distance (km)", fontsize=20)
plt.title("Men's Hour Record Progression", fontsize=30)
plot_steps_and_markers(df_men, annotation_nudge, ax)
ax.tick_params(axis="both", which="major", labelsize=16)
draw_bands(ax)
draw_legend(ax)
_, x_current = ax.get_xlim()
ax.set_xlim("1966-01-01", x_current)
ticks = ax.get_xticks()
fig.patch.set_facecolor("white")
# Save to disk
for ext in ("png", "svg"):
    fig.savefig(
        "/tmp/mens_hour_records_progression.{ext}".format(ext=ext), 
        bbox_inches="tight",
        transparent=False,
    )
# In[12]:
df_women = df[(df["gender"] == "women") & (df["success"] == True)]
fig, ax = plt.subplots(figsize=(WIDTH, HEIGHT))
annotation_nudge = {
    ("Maria Cressari", 41.471): (10, -0.27),
    ("Keetie van Oosten", 43.082): (18.5, -0.25),
    ("Jeannie Longo-Ciprelli", 44.767): (21.0, -0.25),
    ("Jeannie Longo-Ciprelli", 45.094): (21.0, -0.25),
    ("Leontien van Moorsel", 46.065): (20.3, -0.25),
    ("Jeannie Longo-Ciprelli", 44.933): (0, 0.25),
    ("Yvonne McGregor", 47.411): (1.5, 0.3),
    ("Jeannie Longo-Ciprelli", 48.159): (3, 0.3),
    ("Catherine Marsal", 47.112): (0, -0.15),
    ("Molly Van Houweling", 46.273): (0, 0.1),
    ("Evelyn Stevens", 47.98): (0, -0.1),
    ("Vittoria Bussi", 48.007): (3, 0.35),
    ("Joscelin Lowden", 48.405): (0.5, 0.35),
}
ax.set_ylabel("Distance (km)", fontsize=20)
plt.title("Women's Hour Record Progression", fontsize=30)
plot_steps_and_markers(df_women, annotation_nudge, ax)
ax.tick_params(axis="both", which="major", labelsize=16)
draw_bands(ax, ticks[1:-1])
draw_legend(ax)
ax.set_ylim(41, 50.5)
fig.patch.set_facecolor("white")
# Save to disk
for ext in ("png", "svg"):
    fig.savefig(
        "/tmp/womens_hour_records_progression.{ext}".format(ext=ext),
        bbox_inches="tight",
        transparent=False,
    )

Data

Data (collapsed)
{
    "data": [
        {
            "age": 27.0,
            "date": "1972-10-25T00:00:00.000",
            "distance (km)": 49.431,
            "equipment": "Drop handlebar, round steel tubing frame, wire spokes.",
            "gender": "men",
            "index": 0,
            "record": "uci",
            "rider": "Eddy Merckx",
            "success": true,
            "velodrome": "Agust\u00edn Melgar (333 meters outdoor concrete high-altitude), Mexico City, Mexico"
        },
        {
            "age": null,
            "date": "1972-11-25T00:00:00.000",
            "distance (km)": 41.471,
            "equipment": "4.7-kilogram Colnago, drop handlebars, wire spokes.[12]",
            "gender": "women",
            "index": 1,
            "record": "uci",
            "rider": "Maria Cressari",
            "success": true,
            "velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
        },
        {
            "age": 29.0,
            "date": "1978-09-16T00:00:00.000",
            "distance (km)": 43.082,
            "equipment": "RIH superlight steel frame, drop handlebars, wire spokes.[13][14]",
            "gender": "women",
            "index": 2,
            "record": "uci",
            "rider": "Keetie van Oosten",
            "success": true,
            "velodrome": "Munich, Germany"
        },
        {
            "age": 32.0,
            "date": "1984-01-19T00:00:00.000",
            "distance (km)": 50.808,
            "equipment": "Bullhorn handlebar, oval steel tubing frame, disc wheels.",
            "gender": "men",
            "index": 3,
            "record": "best",
            "rider": "Francesco Moser",
            "success": true,
            "velodrome": "Agust\u00edn Melgar (333 meters outdoor concrete high-altitude), Mexico City, Mexico"
        },
        {
            "age": 32.0,
            "date": "1984-01-23T00:00:00.000",
            "distance (km)": 51.151,
            "equipment": "Bullhorn handlebar, oval steel tubing frame, disc wheels.",
            "gender": "men",
            "index": 4,
            "record": "best",
            "rider": "Francesco Moser",
            "success": true,
            "velodrome": "Agust\u00edn Melgar (333 meters outdoor concrete high-altitude), Mexico City, Mexico"
        },
        {
            "age": 27.0,
            "date": "1986-09-20T00:00:00.000",
            "distance (km)": 44.77,
            "equipment": null,
            "gender": "women",
            "index": 5,
            "record": "best",
            "rider": "Jeannie Longo-Ciprelli",
            "success": true,
            "velodrome": "Colorado Springs, United States"
        },
        {
            "age": 28.0,
            "date": "1987-09-23T00:00:00.000",
            "distance (km)": 44.933,
            "equipment": null,
            "gender": "women",
            "index": 6,
            "record": "best",
            "rider": "Jeannie Longo-Ciprelli",
            "success": true,
            "velodrome": "Colorado Springs, United States"
        },
        {
            "age": 30.0,
            "date": "1989-10-01T00:00:00.000",
            "distance (km)": 46.352,
            "equipment": null,
            "gender": "women",
            "index": 7,
            "record": "best",
            "rider": "Jeannie Longo-Ciprelli",
            "success": true,
            "velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
        },
        {
            "age": 27.0,
            "date": "1993-07-17T00:00:00.000",
            "distance (km)": 51.596,
            "equipment": "Graeme Obree-style \"praying mantis\" handlebar, round steel tubing frame, carbon tri-spoke wheels.",
            "gender": "men",
            "index": 8,
            "record": "best",
            "rider": "Graeme Obree",
            "success": true,
            "velodrome": "Vikingskipet (250 meters indoor wood sea-level), Hamar, Norway"
        },
        {
            "age": 24.0,
            "date": "1993-07-23T00:00:00.000",
            "distance (km)": 52.27,
            "equipment": "Triathlon handlebar, carbon airfoil tubing frame, carbon 4-spoke wheels.",
            "gender": "men",
            "index": 9,
            "record": "best",
            "rider": "Chris Boardman",
            "success": true,
            "velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
        },
        {
            "age": 28.0,
            "date": "1994-04-27T00:00:00.000",
            "distance (km)": 52.713,
            "equipment": "Graeme Obree-style \"praying mantis\" handlebar, round steel tubing frame, carbon tri-spoke wheels.",
            "gender": "men",
            "index": 10,
            "record": "best",
            "rider": "Graeme Obree",
            "success": true,
            "velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
        },
        {
            "age": 30.0,
            "date": "1994-09-02T00:00:00.000",
            "distance (km)": 53.04,
            "equipment": "Wide triathlon handlebar, carbon monocoque aero frame, disc wheels.",
            "gender": "men",
            "index": 11,
            "record": "best",
            "rider": "Miguel Indurain",
            "success": true,
            "velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
        },
        {
            "age": 33.0,
            "date": "1994-10-22T00:00:00.000",
            "distance (km)": 53.832,
            "equipment": "Triathlon handlebar, oval steel tubing frame, disc wheels.",
            "gender": "men",
            "index": 12,
            "record": "best",
            "rider": "Tony Rominger",
            "success": true,
            "velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
        },
        {
            "age": 33.0,
            "date": "1994-11-05T00:00:00.000",
            "distance (km)": 55.291,
            "equipment": "Triathlon handlebar, oval steel tubing frame, disc wheels.",
            "gender": "men",
            "index": 13,
            "record": "best",
            "rider": "Tony Rominger",
            "success": true,
            "velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
        },
        {
            "age": 24.0,
            "date": "1995-04-29T00:00:00.000",
            "distance (km)": 47.112,
            "equipment": "Corima carbon composite bicycle. Corima 12 spoke/Corima disc wheels. Tri-Bar.[16]",
            "gender": "women",
            "index": 14,
            "record": "best",
            "rider": "Catherine Marsal",
            "success": true,
            "velodrome": "Bordeaux, France"
        },
        {
            "age": 34.0,
            "date": "1995-06-17T00:00:00.000",
            "distance (km)": 47.411,
            "equipment": "Terry Dolan bicycle. Cinelli tri-bar, Corima disc wheels",
            "gender": "women",
            "index": 15,
            "record": "best",
            "rider": "Yvonne McGregor",
            "success": true,
            "velodrome": "Manchester, England"
        },
        {
            "age": 28.0,
            "date": "1996-09-06T00:00:00.000",
            "distance (km)": 56.375,
            "equipment": "Graeme Obree \"superman-style\" handlebar, carbon monocoque aero frame, 5-spoke front and rear disc wheel.",
            "gender": "men",
            "index": 16,
            "record": "best",
            "rider": "Chris Boardman",
            "success": true,
            "velodrome": "Manchester Velodrome (250 meters indoor wood sea-level), Manchester, UK"
        },
        {
            "age": 38.0,
            "date": "1996-10-26T00:00:00.000",
            "distance (km)": 48.159,
            "equipment": null,
            "gender": "women",
            "index": 17,
            "record": "best",
            "rider": "Jeannie Longo-Ciprelli",
            "success": true,
            "velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
        },
        {
            "age": 26.0,
            "date": "2000-10-18T00:00:00.000",
            "distance (km)": 43.501,
            "equipment": "Perkins, Columbus steel tubing, box section rims, wire spokes",
            "gender": "women",
            "index": 18,
            "record": "uci",
            "rider": "Anna Wilson-Millward",
            "success": true,
            "velodrome": "Vodafone Arena, Melbourne, Australia"
        },
        {
            "age": 32.0,
            "date": "2000-10-27T00:00:00.000",
            "distance (km)": 49.441,
            "equipment": "Drop handlebar, carbon fibre tubing frame, wire spokes.",
            "gender": "men",
            "index": 19,
            "record": "uci",
            "rider": "Chris Boardman",
            "success": true,
            "velodrome": "Manchester Velodrome (250 meters indoor wood sea-level), Manchester, UK"
        },
        {
            "age": 42.0,
            "date": "2000-11-05T00:00:00.000",
            "distance (km)": 44.767,
            "equipment": "Drop handlebar, steel tubing frame, wire spokes.",
            "gender": "women",
            "index": 20,
            "record": "uci",
            "rider": "Jeannie Longo-Ciprelli",
            "success": true,
            "velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
        },
        {
            "age": 42.0,
            "date": "2000-12-07T00:00:00.000",
            "distance (km)": 45.094,
            "equipment": "Drop handlebar, steel tubing frame, wire spokes.",
            "gender": "women",
            "index": 21,
            "record": "uci",
            "rider": "Jeannie Longo-Ciprelli",
            "success": true,
            "velodrome": "Agust\u00edn Melgar, Mexico City, Mexico"
        },
        {
            "age": 33.0,
            "date": "2003-10-01T00:00:00.000",
            "distance (km)": 46.065,
            "equipment": "Drop handlebar, Koga chromoly tubing frame, box section rims, wire spokes[15]",
            "gender": "women",
            "index": 22,
            "record": "uci",
            "rider": "Leontien Zijlaard-van Moorsel",
            "success": true,
            "velodrome": "Agust\u00edn Melgar, Mexico City, Mexico"
        },
        {
            "age": 29.0,
            "date": "2005-07-19T00:00:00.000",
            "distance (km)": 49.7,
            "equipment": "Drop handlebar, carbon fibre tubing frame, wire spokes.",
            "gender": "men",
            "index": 23,
            "record": "uci",
            "rider": "Ond\u0159ej Sosenka",
            "success": true,
            "velodrome": "Krylatskoye (333 meters indoor wood sea-level), Moscow, Russia"
        },
        {
            "age": 43.0,
            "date": "2014-09-18T00:00:00.000",
            "distance (km)": 51.11,
            "equipment": "Triathlon handlebar, Trek carbon fibre tubing frame, disc wheels,[38] chain on a 55/14 gear ratio.[39]",
            "gender": "men",
            "index": 24,
            "record": "unified",
            "rider": "Jens Voigt",
            "success": true,
            "velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
        },
        {
            "age": 24.0,
            "date": "2014-10-30T00:00:00.000",
            "distance (km)": 51.852,
            "equipment": "Triathlon handlebar, SCOTT carbon fibre tubing frame, disc wheels, chain on a 55/13 gear ratio.[39]",
            "gender": "men",
            "index": 25,
            "record": "unified",
            "rider": "Matthias Br\u00e4ndle",
            "success": true,
            "velodrome": "World Cycling Centre Aigle, Switzerland (altitude 380m)"
        },
        {
            "age": 24.0,
            "date": "2015-01-31T00:00:00.000",
            "distance (km)": 51.3,
            "equipment": "Triathlon handlebar, Cervelo carbon fibre tubing frame, disc wheels.",
            "gender": "men",
            "index": 26,
            "record": "unified",
            "rider": "Jack Bobridge",
            "success": false,
            "velodrome": "Darebin International Sports Centre, Melbourne, Australia"
        },
        {
            "age": 24.0,
            "date": "2015-02-08T00:00:00.000",
            "distance (km)": 52.491,
            "equipment": "Triathlon handlebar, BMC carbon fibre tubing frame, disc wheels, chain on a 56/14 gear ratio.[43]",
            "gender": "men",
            "index": 27,
            "record": "unified",
            "rider": "Rohan Dennis",
            "success": true,
            "velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
        },
        {
            "age": 30.0,
            "date": "2015-02-25T00:00:00.000",
            "distance (km)": 52.221,
            "equipment": "Koga TeeTeeTrack with Mavic Comete Track wheels, Koga components, Rotor cranks with a KMC (3/32\") chain on a 58/14 gear ratio.[45]",
            "gender": "men",
            "index": 28,
            "record": "unified",
            "rider": "Thomas Dekker",
            "success": false,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico"
        },
        {
            "age": 37.0,
            "date": "2015-02-28T00:00:00.000",
            "distance (km)": 45.502,
            "equipment": "Ridley Arena Carbon track bike with triathlon bars, Pro rear disc wheel, front disk wheel, Shimano Dura-Ace groupset.[84]",
            "gender": "women",
            "index": 29,
            "record": "unified",
            "rider": "Sarah Storey",
            "success": false,
            "velodrome": "Lee Valley VeloPark, London, United Kingdom"
        },
        {
            "age": 34.0,
            "date": "2015-03-14T00:00:00.000",
            "distance (km)": 50.016,
            "equipment": "Ridley carbon track bike with front and rear disc wheels, triathlon handlebars.",
            "gender": "men",
            "index": 30,
            "record": "unified",
            "rider": "Gustav Larsson",
            "success": false,
            "velodrome": "Manchester Velodrome, Manchester, United Kingdom"
        },
        {
            "age": 26.0,
            "date": "2015-05-02T00:00:00.000",
            "distance (km)": 52.937,
            "equipment": "Canyon Speedmax WHR carbon track bike, with Campagnolo Pista disc wheels, Pista crankset with 54 or 55 or 56t chainring.[49][50]",
            "gender": "men",
            "index": 31,
            "record": "unified",
            "rider": "Alex Dowsett",
            "success": true,
            "velodrome": "Manchester Velodrome, Manchester, United Kingdom[48]"
        },
        {
            "age": 35.0,
            "date": "2015-06-07T00:00:00.000",
            "distance (km)": 54.526,
            "equipment": "Pinarello Bolide HR, SRAM Crankset,[52] modified front fork, custom printed handlebars,[53] 58/14 gear ratio.[54]",
            "gender": "men",
            "index": 32,
            "record": "unified",
            "rider": "Bradley Wiggins",
            "success": true,
            "velodrome": "Lee Valley VeloPark, London, United Kingdom[51]"
        },
        {
            "age": 42.0,
            "date": "2015-09-12T00:00:00.000",
            "distance (km)": 46.273,
            "equipment": "Cervelo T4 track bike with double Mavic Comete discwheels, running 56/14 gear ratio.[76][86]",
            "gender": "women",
            "index": 33,
            "record": "unified",
            "rider": "Molly Shaffer Van Houweling",
            "success": true,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)"
        },
        {
            "age": 41.0,
            "date": "2016-01-22T00:00:00.000",
            "distance (km)": 46.882,
            "equipment": "Cervelo T4 track bike.[87]",
            "gender": "women",
            "index": 34,
            "record": "unified",
            "rider": "Bridie O'Donnell",
            "success": true,
            "velodrome": "Super-Drome, Adelaide, Australia"
        },
        {
            "age": 32.0,
            "date": "2016-02-27T00:00:00.000",
            "distance (km)": 47.98,
            "equipment": "Specialized Shiv modified for the track, SRAM groupset with 53t or 54t chainrings, Zipp 900 front wheel, Zipp Super 9 rear disc, Bioracer skinsuit.",
            "gender": "women",
            "index": 35,
            "record": "unified",
            "rider": "Evelyn Stevens",
            "success": true,
            "velodrome": "OTC Velodrome, Colorado, United States of America (altitude 1840m)"
        },
        {
            "age": null,
            "date": "2016-03-21T00:00:00.000",
            "distance (km)": 48.255,
            "equipment": null,
            "gender": "men",
            "index": 36,
            "record": "unified",
            "rider": "Micah Gross",
            "success": false,
            "velodrome": "Velodrome Suisse, Grenchen, Switzerland"
        },
        {
            "age": 37.0,
            "date": "2016-09-16T00:00:00.000",
            "distance (km)": 53.037,
            "equipment": "Modified Diamondback Serios time trial bike, fitted with special HED disc wheels[56] and a gearing of 53/13[57]",
            "gender": "men",
            "index": 37,
            "record": "unified",
            "rider": "Tom Zirbel",
            "success": false,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico"
        },
        {
            "age": 31.0,
            "date": "2017-01-28T00:00:00.000",
            "distance (km)": 52.114,
            "equipment": "Argon 18 Electron Pro, Mavic Comete discs, SRM + Fibre-Lyte chain ring, and a gearing of 54/13",
            "gender": "men",
            "index": 38,
            "record": "unified",
            "rider": "Martin Toft Madsen",
            "success": false,
            "velodrome": "Ballerup Super Arena, Ballerup, Denmark[59]"
        },
        {
            "age": null,
            "date": "2017-02-25T00:00:00.000",
            "distance (km)": 48.337,
            "equipment": "RB1213 track bike with double DT Swiss disc wheels",
            "gender": "men",
            "index": 39,
            "record": "unified",
            "rider": "Marc Dubois",
            "success": false,
            "velodrome": "Velodrome Suisse, Grenchen, Switzerland"
        },
        {
            "age": 32.0,
            "date": "2017-07-02T00:00:00.000",
            "distance (km)": 49.47,
            "equipment": "BMC Trackmachine TR01, Mavic Comete disc wheels, Custom Prinzwear TT Suit",
            "gender": "men",
            "index": 40,
            "record": "unified",
            "rider": "Wojciech Ziolkowski",
            "success": false,
            "velodrome": "Arena Pruszk\u00f3w, Pruszkow, Poland"
        },
        {
            "age": 32.0,
            "date": "2017-07-21T00:00:00.000",
            "distance (km)": 47.791,
            "equipment": null,
            "gender": "women",
            "index": 41,
            "record": "unified",
            "rider": "Jaime Nielsen",
            "success": false,
            "velodrome": "Avantidrome, Cambridge, New Zealand"
        },
        {
            "age": 30.0,
            "date": "2017-10-07T00:00:00.000",
            "distance (km)": 47.576,
            "equipment": "Giant Trinity track bike with Walker Brothers double-disc wheels",
            "gender": "women",
            "index": 42,
            "record": "unified",
            "rider": "Vittoria Bussi",
            "success": false,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico"
        },
        {
            "age": 18.0,
            "date": "2017-10-07T00:00:00.000",
            "distance (km)": 52.311,
            "equipment": "Giant trinity track bike, Mavic disc wheels",
            "gender": "men",
            "index": 43,
            "record": "unified",
            "rider": "Mikkel Bjerg",
            "success": false,
            "velodrome": "Odense Cykelbane, Odense, Denmark[62]"
        },
        {
            "age": 32.0,
            "date": "2018-01-11T00:00:00.000",
            "distance (km)": 52.324,
            "equipment": "Argon 18 Electron Pro, Mavic Comete discs, SRM + Fibre-Lyte chain ring, and a gearing of 54/13",
            "gender": "men",
            "index": 44,
            "record": "unified",
            "rider": "Martin Toft Madsen",
            "success": false,
            "velodrome": "Ballerup Super Arena, Ballerup, Denmark[63]"
        },
        {
            "age": 33.0,
            "date": "2018-07-26T00:00:00.000",
            "distance (km)": 53.63,
            "equipment": "Argon 18 Electron Pro, Mavic Comete discs, SRM + Fibre-Lyte chain ring, and a gearing of 54/13",
            "gender": "men",
            "index": 45,
            "record": "unified",
            "rider": "Martin Toft Madsen",
            "success": false,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico[64]"
        },
        {
            "age": 29.0,
            "date": "2018-08-22T00:00:00.000",
            "distance (km)": 52.757,
            "equipment": "Customized Giant Trinity road frame, with a gearing of 58/14",
            "gender": "men",
            "index": 46,
            "record": "unified",
            "rider": "Dion Beukeboom",
            "success": false,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico[66]"
        },
        {
            "age": 31.0,
            "date": "2018-09-13T00:00:00.000",
            "distance (km)": 48.007,
            "equipment": "Endura skin suit, HVMN Ketone, and Liv Bike [94]",
            "gender": "women",
            "index": 47,
            "record": "unified",
            "rider": "Vittoria Bussi",
            "success": true,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)"
        },
        {
            "age": 19.0,
            "date": "2018-10-04T00:00:00.000",
            "distance (km)": 53.73,
            "equipment": "Giant trinity track bike, Mavic disc wheels",
            "gender": "men",
            "index": 48,
            "record": "unified",
            "rider": "Mikkel Bjerg",
            "success": false,
            "velodrome": "Odense Cykelbane, Odense, Denmark[67]"
        },
        {
            "age": 27.0,
            "date": "2019-04-16T00:00:00.000",
            "distance (km)": 55.089,
            "equipment": "Ridley Arena Hour Record bike, 330mm custom handlebars, custom handlebar extensions specifically moulded for Campenaerts's forearms, F-Surface Plus aero paint, Campagnolo drivetrain, full carbon disc Campagnolo Ghibli wheels, C-Bear bottom bracket bearings.[69]",
            "gender": "men",
            "index": 49,
            "record": "unified",
            "rider": "Victor Campenaerts",
            "success": true,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)[68]"
        },
        {
            "age": 34.0,
            "date": "2019-08-13T00:00:00.000",
            "distance (km)": 53.975,
            "equipment": null,
            "gender": "men",
            "index": 50,
            "record": "unified",
            "rider": "Martin Toft Madsen",
            "success": false,
            "velodrome": "Odense Cykelbane, Odense, Denmark[70]"
        },
        {
            "age": 22.0,
            "date": "2019-10-06T00:00:00.000",
            "distance (km)": 52.061,
            "equipment": null,
            "gender": "men",
            "index": 51,
            "record": "unified",
            "rider": "Mathias Norsgaard",
            "success": false,
            "velodrome": "Odense Cykelbane, Odense, Denmark[71]"
        },
        {
            "age": 30.0,
            "date": "2020-09-18T00:00:00.000",
            "distance (km)": 52.116,
            "equipment": null,
            "gender": "men",
            "index": 52,
            "record": "unified",
            "rider": "Claudio Imhof",
            "success": false,
            "velodrome": "Zurich, Switzerland"
        },
        {
            "age": 32.0,
            "date": "2020-10-23T00:00:00.000",
            "distance (km)": 51.304,
            "equipment": null,
            "gender": "men",
            "index": 53,
            "record": "unified",
            "rider": "Lionel Sanders",
            "success": false,
            "velodrome": "Milton, Canada[72]"
        },
        {
            "age": 33.0,
            "date": "2021-09-30T00:00:00.000",
            "distance (km)": 48.405,
            "equipment": "LeCol x McLaren Skinsuit, Poc Tempor Helmet Argon18 Electron Pro track frame, WattShop Cratus chainrings (64x15 gear ratio) and WattShop Pentaxia Olympic/Anemoi handlebars/extensions, FFWD Disc-T SL wheels (front and rear w/ 23c Vittoria Pista tyres). Lowden may have used an 8.5mm pitch chain supplied by New Motion Labs.[83]",
            "gender": "women",
            "index": 54,
            "record": "unified",
            "rider": "Joscelin Lowden",
            "success": true,
            "velodrome": "Velodrome Suisse in Grenchen, Switzerland (altitude 450m)"
        },
        {
            "age": 33.0,
            "date": "2021-11-03T00:00:00.000",
            "distance (km)": 54.555,
            "equipment": "Factor Hanzo time trial bike (track version), Aerocoach Aten chainring with 61/13 gearing, Aerocoach Ascalon extensions, custom Vorteq skinsuit, HED Volo disc wheels, Izumi Super Toughness KAI chain[74]",
            "gender": "men",
            "index": 55,
            "record": "unified",
            "rider": "Alex Dowsett",
            "success": false,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)[73]"
        },
        {
            "age": 35.0,
            "date": "2022-05-23T00:00:00.000",
            "distance (km)": 49.254,
            "equipment": null,
            "gender": "women",
            "index": 56,
            "record": "unified",
            "rider": "Ellen van Dijk",
            "success": true,
            "velodrome": "Velodrome Suisse in Grenchen, Switzerland (altitude 450m)"
        },
        {
            "age": 30.0,
            "date": "2022-08-19T00:00:00.000",
            "distance (km)": 55.548,
            "equipment": "Prototype Pinarello Bolide F HR 3D[75]",
            "gender": "men",
            "index": 57,
            "record": "unified",
            "rider": "Daniel Bigham",
            "success": true,
            "velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
        },
        {
            "age": 26.0,
            "date": "2022-10-08T00:00:00.000",
            "distance (km)": 56.792,
            "equipment": "Pinarello Bolide F HR 3D, 64t chain ring, 14t rear sprocket, Princeton Carbonworks wheelset, custom Bioracer Katana suit[75]",
            "gender": "men",
            "index": 58,
            "record": "unified",
            "rider": "Filippo Ganna",
            "success": true,
            "velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
        },
        {
            "age": 36.0,
            "date": "2023-10-13T00:00:00.000",
            "distance (km)": 50.267,
            "equipment": "",
            "gender": "women",
            "index": 59,
            "record": "unified",
            "rider": "Vittoria Bussi",
            "success": true,
            "velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)"
        }
    ],
    "schema": {
        "fields": [
            {
                "name": "index",
                "type": "integer"
            },
            {
                "name": "date",
                "type": "datetime"
            },
            {
                "name": "rider",
                "type": "string"
            },
            {
                "name": "age",
                "type": "number"
            },
            {
                "name": "velodrome",
                "type": "string"
            },
            {
                "name": "distance (km)",
                "type": "number"
            },
            {
                "name": "equipment",
                "type": "string"
            },
            {
                "name": "success",
                "type": "boolean"
            },
            {
                "name": "gender",
                "type": "string"
            },
            {
                "name": "record",
                "type": "string"
            }
        ],
        "pandas_version": "1.4.0",
        "primaryKey": [
            "index"
        ]
    }
}