pyergast package

Submodules

pyergast.pyergast module

pyergast.pyergast.constructor_standings(year=None, race=None)[source]

Fetch the constructor standings after a specific race in a specific year. Defaults to latest standings

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – position: int positionText: str points: int wins: int constructorID: str constructor: str nationality: str

Example

>>> pyergast.constructor_standings(1965)
   position positionText points wins    constructorID             name    nationality
0         1            1     54    6     lotus-climax     Lotus-Climax        British
1         2            2     45    3              brm              BRM        British
2         3            3     27    0   brabham-climax   Brabham-Climax        British
3         4            4     26    0          ferrari          Ferrari        Italian
4         5            5     14    0    cooper-climax    Cooper-Climax        British
5         6            6     11    1            honda            Honda       Japanese
6         7            7      5    0      brabham-brm      Brabham-BRM        British
7         8            8      2    0        lotus-brm        Lotus-BRM        British
8         9            9      0    0     brabham-ford     Brabham-Ford        British
9        10           10      0    0             alfa       Alfa Romeo        Italian
10       11           11      0    0   lds-alfa_romeo   LDS-Alfa Romeo  South African
11       12           12      0    0      cooper-ford      Cooper-Ford        British
12       13           13      0    0       lds-climax       LDS-Climax  South African
13       14           14      0    0       lotus-ford       Lotus-Ford        British
14       15           15      0    0               re               RE      Rhodesian
15       16           16      0    0  cooper-maserati  Cooper-Maserati        British
pyergast.pyergast.driver_standings(year=None, race=None)[source]

Fetch the driver standings after a specific race in a specific year. Defaults to latest standings

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – position: int positionText: str points: int wins: int driverID: str driver: str nationality: str constructorID: str constructor: str

Example

>>> pyergast.driver_standings(1974)
   position positionText points wins            driverID              driver    nationality constructorID constructor
0         1            1     55    3  emerson_fittipaldi  Emerson Fittipaldi      Brazilian       mclaren     McLaren
1         2            2     52    1           regazzoni      Clay Regazzoni          Swiss       ferrari     Ferrari
2         3            3     45    2           scheckter      Jody Scheckter  South African       tyrrell     Tyrrell
3         4            4     38    2               lauda          Niki Lauda       Austrian       ferrari     Ferrari
4         5            5     35    3            peterson     Ronnie Peterson        Swedish    team_lotus  Team Lotus
..      ...          ...    ...  ...                 ...                 ...            ...           ...         ...
57       58           58      0    0              purley        David Purley        British         token       Token
58       59           59      0    0             facetti       Carlo Facetti        Italian       brabham     Brabham
59       60           60      0    0            lombardi      Lella Lombardi        Italian       brabham     Brabham
60       61           61      0    0             perkins       Larry Perkins     Australian          amon        Amon
61       62           62      0    0           nicholson      John Nicholson  New Zealander        lyncar      Lyncar

[62 rows x 9 columns]

pyergast.pyergast.find_circuitid(circuit)[source]

Searches the list of all the circuits that are similar to the input

Parameters

circuit (str) – The name of the circuit. Actual circuit name, locality, or country are all accepted.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – circuitId: str url: str circuitName: str Latitude: int Longtitude: int Locality: str Country: str

Example

>>> pyergast.find_circuitid('brazil')
      circuitId                                                url  ...        Locality Country
29   interlagos  http://en.wikipedia.org/wiki/Aut%C3%B3dromo_Jo...  ...       São Paulo  Brazil
31  jacarepagua  http://en.wikipedia.org/wiki/Aut%C3%B3dromo_In...  ...  Rio de Janeiro  Brazil

[2 rows x 7 columns]

pyergast.pyergast.find_constructorid(name)[source]

Searches the list of all constructors to find ones that are the same or similar to the input.

Parameters

name (str) – The name of the constructor

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – constructorId: str url: str name: str nationality: str

Example

>>> pyergast.find_constructorid('lotus')
      constructorId                                        url                       name nationality
111    lotus_racing  http://en.wikipedia.org/wiki/Lotus_Racing                      Lotus   Malaysian
112        lotus_f1      http://en.wikipedia.org/wiki/Lotus_F1                   Lotus F1     British
113  lotus-borgward    http://en.wikipedia.org/wiki/Team_Lotus             Lotus-Borgward     British
114       lotus-brm    http://en.wikipedia.org/wiki/Team_Lotus                  Lotus-BRM     British
115    lotus-climax    http://en.wikipedia.org/wiki/Team_Lotus               Lotus-Climax     British
116      lotus-ford    http://en.wikipedia.org/wiki/Team_Lotus                 Lotus-Ford     British
117  lotus-maserati    http://en.wikipedia.org/wiki/Team_Lotus             Lotus-Maserati     British
118        lotus-pw    http://en.wikipedia.org/wiki/Team_Lotus  Lotus-Pratt & Whitney     British
191      team_lotus    http://en.wikipedia.org/wiki/Team_Lotus                 Team Lotus     British
pyergast.pyergast.find_driverid(firstname, lastname)[source]

Searches the list of all drivers to find ones that are the same or similar to the input.

Parameters
  • firstname (str) – The first name of the driver

  • lastname (str) – The last name of the driver

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – driverId: str permanentNumber: int code: str url: str givenName: str familyName: str dateOfBirth: str nationality: str

Example

>>> pyergast.find_driverid('peter', 'collins')
         driverId                                                url givenName  ... nationality permanentNumber code
167       collins  http://en.wikipedia.org/wiki/Peter_Collins_(ra...     Peter  ...     British             NaN  NaN
595        peters  http://en.wikipedia.org/wiki/Josef_Peters_(dri...     Josef  ...      German             NaN  NaN
596      peterson       http://en.wikipedia.org/wiki/Ronnie_Peterson    Ronnie  ...     Swedish             NaN  NaN
809  peter_walker  http://en.wikipedia.org/wiki/Peter_Walker_(dri...     Peter  ...     British             NaN  NaN

[4 rows x 8 columns]

pyergast.pyergast.get_circuits(year=None, race=None)[source]

Queries the API to obtain the list of circuits in a pandas dataframe format. By default, this function returns the list of all circuits ever used in F1. If the year parameter is specified, this function returns the list of all circuits used in F1 in that year. If the year and race parameters are specified, this function returns the information of the circuit that hosted the specified race in specified year.

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – circuitId: str url: str circuitName: str Latitude: int Longtitude: int Locality: str Country: str

Example

>>> pyergast.get_circuits(year=1985, race=3)
         circuitId                                                url  ...        Locality       Country
0         adelaide  http://en.wikipedia.org/wiki/Adelaide_Street_C...  ...        Adelaide     Australia
1     brands_hatch          http://en.wikipedia.org/wiki/Brands_Hatch  ...            Kent            UK
2          detroit  http://en.wikipedia.org/wiki/Detroit_street_ci...  ...         Detroit           USA
3          estoril  http://en.wikipedia.org/wiki/Aut%C3%B3dromo_do...  ...         Estoril      Portugal
4            imola  http://en.wikipedia.org/wiki/Autodromo_Enzo_e_...  ...           Imola         Italy
5      jacarepagua  http://en.wikipedia.org/wiki/Aut%C3%B3dromo_In...  ...  Rio de Janeiro        Brazil
6          kyalami               http://en.wikipedia.org/wiki/Kyalami  ...         Midrand  South Africa
7           monaco     http://en.wikipedia.org/wiki/Circuit_de_Monaco  ...     Monte-Carlo        Monaco
8            monza  http://en.wikipedia.org/wiki/Autodromo_Naziona...  ...           Monza         Italy
9      nurburgring      http://en.wikipedia.org/wiki/N%C3%BCrburgring  ...         Nürburg       Germany
10  osterreichring               http://en.wikipedia.org/wiki/A1-Ring  ...       Spielburg       Austria
11          ricard   http://en.wikipedia.org/wiki/Paul_Ricard_Circuit  ...    Le Castellet        France
12     silverstone   http://en.wikipedia.org/wiki/Silverstone_Circuit  ...     Silverstone            UK
13             spa  http://en.wikipedia.org/wiki/Circuit_de_Spa-Fr...  ...             Spa       Belgium
14      villeneuve  http://en.wikipedia.org/wiki/Circuit_Gilles_Vi...  ...        Montreal        Canada
15       zandvoort     http://en.wikipedia.org/wiki/Circuit_Zandvoort  ...       Zandvoort   Netherlands

[16 rows x 7 columns]

pyergast.pyergast.get_constructors(year=None, race=None)[source]

Queries the API to obtain the list of constructors in a pandas dataframe format. By default, this function returns the list of all constructors who have ever driven in F1. If the year parameter is specified, this function returns the list of all constructors who participated F1 in that year. If the year and race parameters are specified, this function returns the list of all constructors for a particular race.

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – constructorId: str url: str name: str nationality: str

Example

>>> pyergast.get_constructors(year=2003, race=10)
  constructorId                                                url      name nationality
0           bar  http://en.wikipedia.org/wiki/British_American_...       BAR     British
1       ferrari      http://en.wikipedia.org/wiki/Scuderia_Ferrari   Ferrari     Italian
2        jaguar         http://en.wikipedia.org/wiki/Jaguar_Racing    Jaguar     British
3        jordan     http://en.wikipedia.org/wiki/Jordan_Grand_Prix    Jordan       Irish
4       mclaren               http://en.wikipedia.org/wiki/McLaren   McLaren     British
5       minardi               http://en.wikipedia.org/wiki/Minardi   Minardi     Italian
6       renault  http://en.wikipedia.org/wiki/Renault_in_Formul...   Renault      French
7        sauber                http://en.wikipedia.org/wiki/Sauber    Sauber       Swiss
8        toyota         http://en.wikipedia.org/wiki/Toyota_Racing    Toyota    Japanese
9      williams  http://en.wikipedia.org/wiki/Williams_Grand_Pr...  Williams     British
pyergast.pyergast.get_drivers(year=None, race=None)[source]

Queries the API to obtain the list of drivers in a pandas dataframe format. By default, this function returns the list of all drivers who have ever driven in F1. If the year parameter is specified, this function returns the list of all drivers who drove in F1 in that year. If the year and race parameters are specified, this function returns the list of all drivers who drove in F1 for a particular race.

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – driverId: str permanentNumber: int code: str url: str givenName: str familyName: str dateOfBirth: str nationality: str

Example

>>> pyergast.get_drivers(2016)
           driverId permanentNumber code  ...  familyName dateOfBirth nationality
0            alonso              14  ALO  ...      Alonso  1981-07-29     Spanish
1            bottas              77  BOT  ...      Bottas  1989-08-28     Finnish
2            button              22  BUT  ...      Button  1980-01-19     British
3          ericsson               9  ERI  ...    Ericsson  1990-09-02     Swedish
4          grosjean               8  GRO  ...    Grosjean  1986-04-17      French
5         gutierrez              21  GUT  ...   Gutiérrez  1991-08-05     Mexican
6          hamilton              44  HAM  ...    Hamilton  1985-01-07     British
7          haryanto              88  HAR  ...    Haryanto  1993-01-22  Indonesian
8        hulkenberg              27  HUL  ...  Hülkenberg  1987-08-19      German
9             kvyat              26  KVY  ...       Kvyat  1994-04-26     Russian
10  kevin_magnussen              20  MAG  ...   Magnussen  1992-10-05      Danish
11            massa              19  MAS  ...       Massa  1981-04-25   Brazilian
12             nasr              12  NAS  ...        Nasr  1992-08-21   Brazilian
13             ocon              31  OCO  ...        Ocon  1996-09-17      French
14    jolyon_palmer              30  PAL  ...      Palmer  1991-01-20     British
15            perez              11  PER  ...       Pérez  1990-01-26     Mexican
16        raikkonen               7  RAI  ...   Räikkönen  1979-10-17     Finnish
17        ricciardo               3  RIC  ...   Ricciardo  1989-07-01  Australian
18          rosberg               6  ROS  ...     Rosberg  1985-06-27      German
19            sainz              55  SAI  ...       Sainz  1994-09-01     Spanish
20        vandoorne               2  VAN  ...   Vandoorne  1992-03-26     Belgian
21   max_verstappen              33  VER  ...  Verstappen  1997-09-30       Dutch
22           vettel               5  VET  ...      Vettel  1987-07-03      German
23         wehrlein              94  WEH  ...    Wehrlein  1994-10-18      German

[24 rows x 8 columns]

pyergast.pyergast.get_qualifying_result(year=None, race=None)[source]

Queries the API to return qualifying results in a pandas dataframe format. By default this method returns the most recent result

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – number: int position: int driverID: str driver: str nationality: str constructorID: str constructor: str Q1: str Q2: str Q3: str

Example

>>> pyergast.get_qualifying_result()
   number position           driverID              driver  ...   constructor        Q1        Q2        Q3
0      33        1     max_verstappen      Max Verstappen  ...      Red Bull  1:35.993  1:35.641  1:35.246
1      77        2             bottas     Valtteri Bottas  ...      Mercedes  1:35.699  1:35.527  1:35.271
2      44        3           hamilton      Lewis Hamilton  ...      Mercedes  1:35.528  1:35.466  1:35.332
3       4        4             norris        Lando Norris  ...       McLaren  1:36.016  1:35.849  1:35.497
4      23        5              albon     Alexander Albon  ...      Red Bull  1:36.106  1:35.654  1:35.571
5      55        6              sainz        Carlos Sainz  ...       McLaren  1:36.517  1:36.192  1:35.815
6      26        7              kvyat        Daniil Kvyat  ...    AlphaTauri  1:36.459  1:36.214  1:35.963
7      18        8             stroll        Lance Stroll  ...  Racing Point  1:36.502  1:36.143  1:36.046
8      16        9            leclerc     Charles Leclerc  ...       Ferrari  1:35.881  1:35.932  1:36.065
9      10       10              gasly        Pierre Gasly  ...    AlphaTauri  1:36.545  1:36.282  1:36.242
10     31       11               ocon        Esteban Ocon  ...       Renault  1:36.783  1:36.359       NaN
11      3       12          ricciardo    Daniel Ricciardo  ...       Renault  1:36.704  1:36.406       NaN
12      5       13             vettel    Sebastian Vettel  ...       Ferrari  1:36.655  1:36.631       NaN
13     99       14         giovinazzi  Antonio Giovinazzi  ...    Alfa Romeo  1:37.075  1:38.248       NaN
14     11       15              perez        Sergio Pérez  ...  Racing Point  1:36.034       NaN       NaN
15      7       16          raikkonen      Kimi Räikkönen  ...    Alfa Romeo  1:37.555       NaN       NaN
16     20       17    kevin_magnussen     Kevin Magnussen  ...  Haas F1 Team  1:37.863       NaN       NaN
17     63       18            russell      George Russell  ...      Williams  1:38.045       NaN       NaN
18     51       19  pietro_fittipaldi   Pietro Fittipaldi  ...  Haas F1 Team  1:38.173       NaN       NaN
19      6       20             latifi     Nicholas Latifi  ...      Williams  1:38.443       NaN       NaN

[20 rows x 10 columns]

pyergast.pyergast.get_race_result(year=None, race=None)[source]

Queries the API to return race results in a pandas dataframe format. By default this method returns the most recent result

Parameters
  • year (int) – An optional parameter that specifies the year to be queried.

  • race (int) – An optional parameter that specifies the round of a year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – number: int position: int positionText: str grid: int points: int driverID: str driver: str nationality: str constructorID: str constructor: str laps: int status: str Time: dict

Example

>>> pyergast.get_race_result()
   number position positionText grid  ...   constructor laps        status                                          Time
0      33        1            1    1  ...      Red Bull   55      Finished  {'millis': '5788645', 'time': '1:36:28.645'}
1      77        2            2    2  ...      Mercedes   55      Finished      {'millis': '5804621', 'time': '+15.976'}
2      44        3            3    3  ...      Mercedes   55      Finished      {'millis': '5807060', 'time': '+18.415'}
3      23        4            4    5  ...      Red Bull   55      Finished      {'millis': '5808632', 'time': '+19.987'}
4       4        5            5    4  ...       McLaren   55      Finished    {'millis': '5849374', 'time': '+1:00.729'}
5      55        6            6    6  ...       McLaren   55      Finished    {'millis': '5854307', 'time': '+1:05.662'}
6       3        7            7   11  ...       Renault   55      Finished    {'millis': '5862393', 'time': '+1:13.748'}
7      10        8            8    9  ...    AlphaTauri   55      Finished    {'millis': '5878363', 'time': '+1:29.718'}
8      31        9            9   10  ...       Renault   55      Finished      {'millis': '5799996', 'time': '+11.351'}
9      18       10           10    8  ...  Racing Point   55      Finished       {'millis': '5790314', 'time': '+1.669'}
10     26       11           11    7  ...    AlphaTauri   54        +1 Lap                                           NaN
11      7       12           12   15  ...    Alfa Romeo   54        +1 Lap                                           NaN
12     16       13           13   12  ...       Ferrari   54        +1 Lap                                           NaN
13      5       14           14   13  ...       Ferrari   54        +1 Lap                                           NaN
14     63       15           15   16  ...      Williams   54        +1 Lap                                           NaN
15     99       16           16   14  ...    Alfa Romeo   54        +1 Lap                                           NaN
16      6       17           17   18  ...      Williams   54        +1 Lap                                           NaN
17     20       18           18   20  ...  Haas F1 Team   54        +1 Lap                                           NaN
18     51       19           19   17  ...  Haas F1 Team   53       +2 Laps                                           NaN
19     11       20            R   19  ...  Racing Point    8  Transmission                                           NaN

[20 rows x 13 columns]

pyergast.pyergast.get_schedule(year=None)[source]

Queries the API to return the schedule of a specified season. Defaults to most recent season.

Parameters

year (int) – An optional parameter that specifies the year to be queried.

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – season: int round: int url: str raceName: str date: str circuitId: str circuitName: str locality: str country: str

Example

>>> pyergast.get_schedule(1957)
  season round  ...      locality    country
0   1957     1  ...  Buenos Aires  Argentina
1   1957     2  ...   Monte-Carlo     Monaco
2   1957     3  ...  Indianapolis        USA
3   1957     4  ...         Rouen     France
4   1957     5  ...     Liverpool         UK
5   1957     6  ...       Nürburg    Germany
6   1957     7  ...       Pescara      Italy
7   1957     8  ...         Monza      Italy

[8 rows x 9 columns]

pyergast.pyergast.query_constructor(constructorid)[source]

Fetches the consturctor’s historical constructor standings position

Parameters

constructorid (str) – A string representing the constructor id of the constructor. Use find_constructorid function to obtain constructorid

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – season: int round: int position: int positionText: str points: int wins: int constructorID: str constructor: str nationality: str

Example

>>> pyergast.query_constructor('alfa')
   season round position positionText points wins constructorID constructor nationality
0    1963    10       16           16      0    0          alfa  Alfa Romeo     Italian
1    1965    10       10           10      0    0          alfa  Alfa Romeo     Italian
2    1979    15       16           16      0    0          alfa  Alfa Romeo     Italian
3    1980    14       11           11      4    0          alfa  Alfa Romeo     Italian
4    1981    15        9            9     10    0          alfa  Alfa Romeo     Italian
5    1982    16        9            9      7    0          alfa  Alfa Romeo     Italian
6    1983    15        6            6     18    0          alfa  Alfa Romeo     Italian
7    1984    16        8            8     11    0          alfa  Alfa Romeo     Italian
8    1985    16       12           12      0    0          alfa  Alfa Romeo     Italian
9    2019    21        8            8     57    0          alfa  Alfa Romeo     Italian
10   2020    17        8            8      8    0          alfa  Alfa Romeo     Italian
pyergast.pyergast.query_driver(driverid)[source]

Fetches the driver’s historical driver standings position

Parameters

driverid (str) – A string representing the driver id of the driver. Use find_driverid method to obtain constructorid

Returns

  • pandas.DataFrame

  • Index – RangeIndex

  • Columns – season: int round: int position: int positionText: str points: int wins: int driver: str nationality: str constructorID: str constructor: str

Example

>>> pyergast.query_driver('raikkonen')
   season round position positionText points wins          driver nationality constructorID constructor
0    2001    17       10           10      9    0  Kimi Räikkönen     Finnish        sauber      Sauber
1    2002    17        6            6     24    0  Kimi Räikkönen     Finnish       mclaren     McLaren
2    2003    16        2            2     91    1  Kimi Räikkönen     Finnish       mclaren     McLaren
3    2004    18        7            7     45    1  Kimi Räikkönen     Finnish       mclaren     McLaren
4    2005    19        2            2    112    7  Kimi Räikkönen     Finnish       mclaren     McLaren
5    2006    18        5            5     65    0  Kimi Räikkönen     Finnish       mclaren     McLaren
6    2007    17        1            1    110    6  Kimi Räikkönen     Finnish       ferrari     Ferrari
7    2008    18        3            3     75    2  Kimi Räikkönen     Finnish       ferrari     Ferrari
8    2009    17        6            6     48    1  Kimi Räikkönen     Finnish       ferrari     Ferrari
9    2012    20        3            3    207    1  Kimi Räikkönen     Finnish      lotus_f1    Lotus F1
10   2013    19        5            5    183    1  Kimi Räikkönen     Finnish      lotus_f1    Lotus F1
11   2014    19       12           12     55    0  Kimi Räikkönen     Finnish       ferrari     Ferrari
12   2015    19        4            4    150    0  Kimi Räikkönen     Finnish       ferrari     Ferrari
13   2016    21        6            6    186    0  Kimi Räikkönen     Finnish       ferrari     Ferrari
14   2017    20        4            4    205    0  Kimi Räikkönen     Finnish       ferrari     Ferrari
15   2018    21        3            3    251    1  Kimi Räikkönen     Finnish       ferrari     Ferrari
16   2019    21       12           12     43    0  Kimi Räikkönen     Finnish          alfa  Alfa Romeo
17   2020    17       16           16      4    0  Kimi Räikkönen     Finnish          alfa  Alfa Romeo
pyergast.pyergast.unpack_lists(driver)[source]

Helper function that unpacks dictionaries in a dataframe and packs them into a new list of dicts

Parameters

df_input (dict) – A dictionary of dictionaries

Returns

Return type

list

Examples

>>> pyErgast.unpack_lists({'a': {'a1': 1}, 'b': 1})
[{'a1': 1}]

Module contents