rugbypy
================
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
`rugbypy` is a Python package that aims to make rugby data more
available to aid in the development of rugby analytics.

Data is updated daily 5AM UTC! Currently we only have data for 2022,
2023 & 2024
## Requirements
python version 3.9
## Install
``` sh
pip install rugbypy
```
## How to use
### Match Stats
You can fetch all the matches that occured on a particular date with:
``` python
from rugbypy.match import *
matches = fetch_matches(date="20230101")
matches
```
Fetching matches on date: 20230101...
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>match_id</th>
<th>competition_id</th>
<th>home_team_id</th>
<th>home_team</th>
<th>away_team_id</th>
<th>away_team</th>
<th>date</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>595735</td>
<td>267979</td>
<td>25907</td>
<td>Northampton Saints</td>
<td>25901</td>
<td>Harlequins</td>
<td>20230101</td>
</tr>
<tr>
<th>1</th>
<td>599464</td>
<td>270557</td>
<td>25965</td>
<td>Cardiff Blues</td>
<td>25968</td>
<td>Ospreys</td>
<td>20230101</td>
</tr>
<tr>
<th>2</th>
<td>599465</td>
<td>270557</td>
<td>25966</td>
<td>Scarlets</td>
<td>25967</td>
<td>Dragons</td>
<td>20230101</td>
</tr>
<tr>
<th>3</th>
<td>599466</td>
<td>270557</td>
<td>25926</td>
<td>Ulster</td>
<td>25925</td>
<td>Munster</td>
<td>20230101</td>
</tr>
<tr>
<th>4</th>
<td>599467</td>
<td>270557</td>
<td>25924</td>
<td>Leinster</td>
<td>25923</td>
<td>Connacht</td>
<td>20230101</td>
</tr>
<tr>
<th>5</th>
<td>597648</td>
<td>270559</td>
<td>25917</td>
<td>Clermont Auvergne</td>
<td>25922</td>
<td>Stade Toulousain</td>
<td>20230101</td>
</tr>
</tbody>
</table>
</div>
Then using that match id you can feed it into the match details
function:
``` python
from rugbypy.match import *
match_details = fetch_match_details(match_id="595735")
match_details
```
Fetching match details for match_id:595735...
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>match_id</th>
<th>date</th>
<th>season</th>
<th>competition_id</th>
<th>competition</th>
<th>venue_id</th>
<th>venue</th>
<th>city_played</th>
<th>home_team</th>
<th>away_team</th>
<th>home_team_id</th>
<th>away_team_id</th>
<th>completed</th>
<th>is_tournament</th>
<th>played_on_grass</th>
<th>attendance</th>
<th>home_team_form</th>
<th>away_team_form</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>595735</td>
<td>20230101</td>
<td>2023</td>
<td>267979</td>
<td>Premiership Rugby</td>
<td>26070</td>
<td>cinch Stadium at Franklin's Gardens</td>
<td>Northampton</td>
<td>Northampton Saints</td>
<td>Harlequins</td>
<td>25907</td>
<td>25901</td>
<td>True</td>
<td>True</td>
<td>True</td>
<td>None</td>
<td>WLWWL</td>
<td>WTLWL</td>
</tr>
</tbody>
</table>
</div>
### Team Stats
You can fetch the team stats for every game with:
``` python
from rugbypy.team import *
team_stats = fetch_team_stats(team_id="25901")
team_stats
```
Fetching all team stats for team_id: 25901...
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>team</th>
<th>game_date</th>
<th>team_id</th>
<th>team_vs</th>
<th>team_vs_id</th>
<th>match_id</th>
<th>players</th>
<th>clean_breaks</th>
<th>conversion_goals</th>
<th>defenders_beaten</th>
<th>...</th>
<th>scrums_total</th>
<th>scrums_won</th>
<th>tackles</th>
<th>territory</th>
<th>total_free_kicks_conceded</th>
<th>total_lineouts</th>
<th>tries</th>
<th>turnover_knock_on</th>
<th>turnovers_conceded</th>
<th>yellow_cards</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>Harlequins</td>
<td>20220102</td>
<td>25901</td>
<td>Gloucester Rugby</td>
<td>25900</td>
<td>593902</td>
<td>[290946, 298485, 296815, 296184, 295534, 29512...</td>
<td>3.0</td>
<td>2.0</td>
<td>26.0</td>
<td>...</td>
<td>7.0</td>
<td>7.0</td>
<td>94.0</td>
<td>0.63</td>
<td>1.0</td>
<td>16.0</td>
<td>2.0</td>
<td>9.0</td>
<td>15.0</td>
<td>2.0</td>
</tr>
<tr>
<th>1</th>
<td>Harlequins</td>
<td>20220108</td>
<td>25901</td>
<td>Exeter Chiefs</td>
<td>116227</td>
<td>593909</td>
<td>[290946, 296815, 296184, 295534, 295121, 29484...</td>
<td>5.0</td>
<td>2.0</td>
<td>16.0</td>
<td>...</td>
<td>11.0</td>
<td>9.0</td>
<td>124.0</td>
<td>0.55</td>
<td>0.0</td>
<td>10.0</td>
<td>2.0</td>
<td>8.0</td>
<td>17.0</td>
<td>0.0</td>
</tr>
<tr>
<th>2</th>
<td>Harlequins</td>
<td>20220128</td>
<td>25901</td>
<td>Bath Rugby</td>
<td>25898</td>
<td>593913</td>
<td>[158708, 299436, 298485, 296815, 296791, 29553...</td>
<td>7.0</td>
<td>1.0</td>
<td>12.0</td>
<td>...</td>
<td>8.0</td>
<td>7.0</td>
<td>162.0</td>
<td>0.50</td>
<td>0.0</td>
<td>9.0</td>
<td>3.0</td>
<td>11.0</td>
<td>15.0</td>
<td>1.0</td>
</tr>
<tr>
<th>3</th>
<td>Harlequins</td>
<td>20220206</td>
<td>25901</td>
<td>Sale Sharks</td>
<td>25908</td>
<td>593922</td>
<td>[158708, 299436, 299031, 298764, 298487, 29848...</td>
<td>7.0</td>
<td>2.0</td>
<td>20.0</td>
<td>...</td>
<td>5.0</td>
<td>5.0</td>
<td>71.0</td>
<td>0.54</td>
<td>2.0</td>
<td>12.0</td>
<td>2.0</td>
<td>17.0</td>
<td>26.0</td>
<td>0.0</td>
</tr>
<tr>
<th>4</th>
<td>Harlequins</td>
<td>20220213</td>
<td>25901</td>
<td>Saracens</td>
<td>25909</td>
<td>593929</td>
<td>[158708, 299436, 298764, 298487, 298485, 29681...</td>
<td>3.0</td>
<td>1.0</td>
<td>23.0</td>
<td>...</td>
<td>4.0</td>
<td>2.0</td>
<td>98.0</td>
<td>0.56</td>
<td>1.0</td>
<td>15.0</td>
<td>1.0</td>
<td>11.0</td>
<td>17.0</td>
<td>0.0</td>
</tr>
<tr>
<th>...</th>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<th>56</th>
<td>Harlequins</td>
<td>20240421</td>
<td>25901</td>
<td>Sale Sharks</td>
<td>25908</td>
<td>597118</td>
<td>[290946, 257545, 301432, 299436, 299031, 29681...</td>
<td>8.0</td>
<td>3.0</td>
<td>36.0</td>
<td>...</td>
<td>3.0</td>
<td>3.0</td>
<td>119.0</td>
<td>0.45</td>
<td>0.0</td>
<td>21.0</td>
<td>5.0</td>
<td>8.0</td>
<td>15.0</td>
<td>0.0</td>
</tr>
<tr>
<th>57</th>
<td>Harlequins</td>
<td>20240427</td>
<td>25901</td>
<td>Northampton Saints</td>
<td>25907</td>
<td>597122</td>
<td>[290946, 257545, 301432, 300430, 299436, 29903...</td>
<td>10.0</td>
<td>4.0</td>
<td>22.0</td>
<td>...</td>
<td>6.0</td>
<td>5.0</td>
<td>125.0</td>
<td>0.45</td>
<td>0.0</td>
<td>12.0</td>
<td>6.0</td>
<td>4.0</td>
<td>6.0</td>
<td>3.0</td>
</tr>
<tr>
<th>58</th>
<td>Harlequins</td>
<td>20240505</td>
<td>25901</td>
<td>Stade Toulousain</td>
<td>25922</td>
<td>597203</td>
<td>[290946, 301432, 299436, 299031, 296815, 29679...</td>
<td>5.0</td>
<td>3.0</td>
<td>23.0</td>
<td>...</td>
<td>3.0</td>
<td>2.0</td>
<td>92.0</td>
<td>0.47</td>
<td>0.0</td>
<td>15.0</td>
<td>4.0</td>
<td>8.0</td>
<td>16.0</td>
<td>1.0</td>
</tr>
<tr>
<th>59</th>
<td>Harlequins</td>
<td>20240511</td>
<td>25901</td>
<td>Exeter Chiefs</td>
<td>116227</td>
<td>597126</td>
<td>[290946, 301432, 299436, 299031, 296815, 29679...</td>
<td>4.0</td>
<td>3.0</td>
<td>33.0</td>
<td>...</td>
<td>4.0</td>
<td>3.0</td>
<td>133.0</td>
<td>0.40</td>
<td>0.0</td>
<td>9.0</td>
<td>4.0</td>
<td>7.0</td>
<td>11.0</td>
<td>0.0</td>
</tr>
<tr>
<th>60</th>
<td>Harlequins</td>
<td>20240518</td>
<td>25901</td>
<td>Bristol Rugby</td>
<td>25899</td>
<td>597132</td>
<td>[290946, 301432, 299436, 299031, 299029, 29681...</td>
<td>6.0</td>
<td>4.0</td>
<td>24.0</td>
<td>...</td>
<td>4.0</td>
<td>3.0</td>
<td>129.0</td>
<td>0.45</td>
<td>1.0</td>
<td>16.0</td>
<td>4.0</td>
<td>6.0</td>
<td>12.0</td>
<td>0.0</td>
</tr>
</tbody>
</table>
<p>61 rows × 42 columns</p>
</div>
You can then fetch the team stats for a particular team on a particular
date with:
``` python
from rugbypy.team import *
team_stats = fetch_team_stats(team_id="25901", date="20230108")
team_stats
```
Fetching team stats for team_id: 25901 on date: 20230108...
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>team</th>
<th>game_date</th>
<th>team_id</th>
<th>team_vs</th>
<th>team_vs_id</th>
<th>match_id</th>
<th>players</th>
<th>clean_breaks</th>
<th>conversion_goals</th>
<th>defenders_beaten</th>
<th>...</th>
<th>scrums_total</th>
<th>scrums_won</th>
<th>tackles</th>
<th>territory</th>
<th>total_free_kicks_conceded</th>
<th>total_lineouts</th>
<th>tries</th>
<th>turnover_knock_on</th>
<th>turnovers_conceded</th>
<th>yellow_cards</th>
</tr>
</thead>
<tbody>
<tr>
<th>28</th>
<td>Harlequins</td>
<td>20230108</td>
<td>25901</td>
<td>Sale Sharks</td>
<td>25908</td>
<td>595741</td>
<td>[158708, 299436, 299031, 298485, 295117, 29477...</td>
<td>3.0</td>
<td>0.0</td>
<td>24.0</td>
<td>...</td>
<td>7.0</td>
<td>5.0</td>
<td>125.0</td>
<td>0.41</td>
<td>0.0</td>
<td>11.0</td>
<td>2.0</td>
<td>8.0</td>
<td>17.0</td>
<td>0.0</td>
</tr>
</tbody>
</table>
<p>1 rows × 42 columns</p>
</div>
### Player Stats
We have the ability to fetch player stats for all the games they have
been involved in. We firstly identify the \`player_id\`\` of a player by
searching our player manifest file.
``` python
from rugbypy.player import *
player_manifest = fetch_all_players()
player_manifest.head()
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>player_id</th>
<th>player_name</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>262799</td>
<td>AJ MacGinty</td>
</tr>
<tr>
<th>1</th>
<td>295135</td>
<td>Bevan Rodd</td>
</tr>
<tr>
<th>2</th>
<td>294815</td>
<td>Tom Roebuck</td>
</tr>
<tr>
<th>3</th>
<td>294814</td>
<td>Gus Warr</td>
</tr>
<tr>
<th>4</th>
<td>294810</td>
<td>Sam Dugdale</td>
</tr>
</tbody>
</table>
</div>
Or we can search for a certain player through our similarity tool:
``` python
from rugbypy.player import *
individual_player = fetch_player(name="johnny sexton")
individual_player
```
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>player_id</th>
<th>player_name</th>
</tr>
</thead>
<tbody>
<tr>
<th>1345</th>
<td>16004</td>
<td>Johnny Sexton</td>
</tr>
<tr>
<th>2156</th>
<td>291349</td>
<td>Ayden Johnstone</td>
</tr>
<tr>
<th>2795</th>
<td>149315</td>
<td>Anthony Watson</td>
</tr>
</tbody>
</table>
</div>
Once we have their `player_id` we can fetch their player stats using
[`fetch_player_stats`](https://seanyboi.github.io/rugbypy/player.html#fetch_player_stats).
In this example we fetch Johnny Sextons player stats:
``` python
from rugbypy.player import *
player_stats = fetch_player_stats(player_id="16004")
player_stats
```
Fetching all player stats for player_id: 16004...
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>player_id</th>
<th>game_date</th>
<th>name</th>
<th>team</th>
<th>team_id</th>
<th>competition_id</th>
<th>competition</th>
<th>match_id</th>
<th>team_vs</th>
<th>team_vs_id</th>
<th>...</th>
<th>rucks_won</th>
<th>runs</th>
<th>tackles</th>
<th>total_free_kicks_conceded</th>
<th>total_lineouts</th>
<th>tries</th>
<th>try_assists</th>
<th>turnover_knock_on</th>
<th>turnovers_conceded</th>
<th>yellow_cards</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>16004</td>
<td>20220205</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>595080</td>
<td>Wales</td>
<td>4</td>
<td>...</td>
<td>4.0</td>
<td>9.0</td>
<td>7.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>1.0</td>
<td>2.0</td>
<td>0.0</td>
</tr>
<tr>
<th>1</th>
<td>16004</td>
<td>20220227</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>595088</td>
<td>Italy</td>
<td>20</td>
<td>...</td>
<td>1.0</td>
<td>3.0</td>
<td>1.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>2</th>
<td>16004</td>
<td>20220312</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>595091</td>
<td>England</td>
<td>1</td>
<td>...</td>
<td>4.0</td>
<td>12.0</td>
<td>7.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>3</th>
<td>16004</td>
<td>20220319</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>595093</td>
<td>Scotland</td>
<td>2</td>
<td>...</td>
<td>3.0</td>
<td>3.0</td>
<td>10.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>0.0</td>
</tr>
<tr>
<th>4</th>
<td>16004</td>
<td>20220610</td>
<td>Johnny Sexton</td>
<td>Leinster</td>
<td>25924</td>
<td>270557</td>
<td>United Rugby Championship</td>
<td>594483</td>
<td>Bulls</td>
<td>25953</td>
<td>...</td>
<td>0.0</td>
<td>3.0</td>
<td>2.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>5</th>
<td>16004</td>
<td>20221216</td>
<td>Johnny Sexton</td>
<td>Leinster</td>
<td>25924</td>
<td>271937</td>
<td>European Rugby Champions Cup</td>
<td>597405</td>
<td>Gloucester Rugby</td>
<td>25900</td>
<td>...</td>
<td>0.0</td>
<td>0.0</td>
<td>7.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>1.0</td>
<td>0.0</td>
</tr>
<tr>
<th>6</th>
<td>16004</td>
<td>20230204</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>596205</td>
<td>Wales</td>
<td>4</td>
<td>...</td>
<td>3.0</td>
<td>8.0</td>
<td>7.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>0.0</td>
</tr>
<tr>
<th>7</th>
<td>16004</td>
<td>20230211</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>596208</td>
<td>France</td>
<td>9</td>
<td>...</td>
<td>1.0</td>
<td>5.0</td>
<td>3.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>8</th>
<td>16004</td>
<td>20230312</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>596216</td>
<td>Scotland</td>
<td>2</td>
<td>...</td>
<td>2.0</td>
<td>5.0</td>
<td>9.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>2.0</td>
<td>0.0</td>
</tr>
<tr>
<th>9</th>
<td>16004</td>
<td>20230318</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>180659</td>
<td>Six Nations</td>
<td>596219</td>
<td>England</td>
<td>1</td>
<td>...</td>
<td>6.0</td>
<td>9.0</td>
<td>5.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>2.0</td>
<td>0.0</td>
</tr>
<tr>
<th>10</th>
<td>16004</td>
<td>20230909</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>164205</td>
<td>Rugby World Cup</td>
<td>596156</td>
<td>Romania</td>
<td>12</td>
<td>...</td>
<td>0.0</td>
<td>5.0</td>
<td>4.0</td>
<td>0.0</td>
<td>0.0</td>
<td>2.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>11</th>
<td>16004</td>
<td>20230916</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>164205</td>
<td>Rugby World Cup</td>
<td>596166</td>
<td>Tonga</td>
<td>16</td>
<td>...</td>
<td>1.0</td>
<td>1.0</td>
<td>2.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>12</th>
<td>16004</td>
<td>20230923</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>164205</td>
<td>Rugby World Cup</td>
<td>596175</td>
<td>South Africa</td>
<td>5</td>
<td>...</td>
<td>1.0</td>
<td>3.0</td>
<td>11.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>13</th>
<td>16004</td>
<td>20231007</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>164205</td>
<td>Rugby World Cup</td>
<td>596190</td>
<td>Scotland</td>
<td>2</td>
<td>...</td>
<td>0.0</td>
<td>5.0</td>
<td>7.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
<tr>
<th>14</th>
<td>16004</td>
<td>20231014</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>164205</td>
<td>Rugby World Cup</td>
<td>596195</td>
<td>New Zealand</td>
<td>8</td>
<td>...</td>
<td>0.0</td>
<td>1.0</td>
<td>11.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
</tbody>
</table>
<p>15 rows × 41 columns</p>
</div>
We can also fetch the player stats on a particular date using
[`fetch_player_stats`](https://seanyboi.github.io/rugbypy/player.html#fetch_player_stats).
In this example we fetch Johnny Sextons player stats on 2023-09-16:
``` python
from rugbypy.player import *
player_stats = fetch_player_stats(player_id="16004", date="20230916")
player_stats
```
Fetching player stats for player_id: 16004 on date: 20230916...
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>player_id</th>
<th>game_date</th>
<th>name</th>
<th>team</th>
<th>team_id</th>
<th>competition_id</th>
<th>competition</th>
<th>match_id</th>
<th>team_vs</th>
<th>team_vs_id</th>
<th>...</th>
<th>rucks_won</th>
<th>runs</th>
<th>tackles</th>
<th>total_free_kicks_conceded</th>
<th>total_lineouts</th>
<th>tries</th>
<th>try_assists</th>
<th>turnover_knock_on</th>
<th>turnovers_conceded</th>
<th>yellow_cards</th>
</tr>
</thead>
<tbody>
<tr>
<th>11</th>
<td>16004</td>
<td>20230916</td>
<td>Johnny Sexton</td>
<td>Ireland</td>
<td>3</td>
<td>164205</td>
<td>Rugby World Cup</td>
<td>596166</td>
<td>Tonga</td>
<td>16</td>
<td>...</td>
<td>1.0</td>
<td>1.0</td>
<td>2.0</td>
<td>0.0</td>
<td>0.0</td>
<td>1.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
</tbody>
</table>
<p>1 rows × 41 columns</p>
</div>
Raw data
{
"_id": null,
"home_page": "https://github.com/seanyboi/rugbypy",
"name": "rugbypy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "nbdev jupyter notebook python",
"author": "seanyboi",
"author_email": "oconnorjamessean@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/58/01/1cd8a8d4b540aab513fb2d18510bd45caf7817a9e4fd7c9977f4e417ee9f/rugbypy-2.0.0.tar.gz",
"platform": null,
"description": "rugbypy\n================\n\n<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->\n\n`rugbypy` is a Python package that aims to make rugby data more\navailable to aid in the development of rugby analytics.\n\n\n\nData is updated daily 5AM UTC! Currently we only have data for 2022,\n2023 & 2024\n\n## Requirements\n\npython version 3.9\n\n## Install\n\n``` sh\npip install rugbypy\n```\n\n## How to use\n\n### Match Stats\n\nYou can fetch all the matches that occured on a particular date with:\n\n``` python\nfrom rugbypy.match import *\nmatches = fetch_matches(date=\"20230101\")\nmatches\n```\n\n Fetching matches on date: 20230101...\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>match_id</th>\n <th>competition_id</th>\n <th>home_team_id</th>\n <th>home_team</th>\n <th>away_team_id</th>\n <th>away_team</th>\n <th>date</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>595735</td>\n <td>267979</td>\n <td>25907</td>\n <td>Northampton Saints</td>\n <td>25901</td>\n <td>Harlequins</td>\n <td>20230101</td>\n </tr>\n <tr>\n <th>1</th>\n <td>599464</td>\n <td>270557</td>\n <td>25965</td>\n <td>Cardiff Blues</td>\n <td>25968</td>\n <td>Ospreys</td>\n <td>20230101</td>\n </tr>\n <tr>\n <th>2</th>\n <td>599465</td>\n <td>270557</td>\n <td>25966</td>\n <td>Scarlets</td>\n <td>25967</td>\n <td>Dragons</td>\n <td>20230101</td>\n </tr>\n <tr>\n <th>3</th>\n <td>599466</td>\n <td>270557</td>\n <td>25926</td>\n <td>Ulster</td>\n <td>25925</td>\n <td>Munster</td>\n <td>20230101</td>\n </tr>\n <tr>\n <th>4</th>\n <td>599467</td>\n <td>270557</td>\n <td>25924</td>\n <td>Leinster</td>\n <td>25923</td>\n <td>Connacht</td>\n <td>20230101</td>\n </tr>\n <tr>\n <th>5</th>\n <td>597648</td>\n <td>270559</td>\n <td>25917</td>\n <td>Clermont Auvergne</td>\n <td>25922</td>\n <td>Stade Toulousain</td>\n <td>20230101</td>\n </tr>\n </tbody>\n</table>\n</div>\n\nThen using that match id you can feed it into the match details\nfunction:\n\n``` python\nfrom rugbypy.match import *\nmatch_details = fetch_match_details(match_id=\"595735\")\nmatch_details\n```\n\n Fetching match details for match_id:595735...\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>match_id</th>\n <th>date</th>\n <th>season</th>\n <th>competition_id</th>\n <th>competition</th>\n <th>venue_id</th>\n <th>venue</th>\n <th>city_played</th>\n <th>home_team</th>\n <th>away_team</th>\n <th>home_team_id</th>\n <th>away_team_id</th>\n <th>completed</th>\n <th>is_tournament</th>\n <th>played_on_grass</th>\n <th>attendance</th>\n <th>home_team_form</th>\n <th>away_team_form</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>595735</td>\n <td>20230101</td>\n <td>2023</td>\n <td>267979</td>\n <td>Premiership Rugby</td>\n <td>26070</td>\n <td>cinch Stadium at Franklin's Gardens</td>\n <td>Northampton</td>\n <td>Northampton Saints</td>\n <td>Harlequins</td>\n <td>25907</td>\n <td>25901</td>\n <td>True</td>\n <td>True</td>\n <td>True</td>\n <td>None</td>\n <td>WLWWL</td>\n <td>WTLWL</td>\n </tr>\n </tbody>\n</table>\n</div>\n\n### Team Stats\n\nYou can fetch the team stats for every game with:\n\n``` python\nfrom rugbypy.team import *\nteam_stats = fetch_team_stats(team_id=\"25901\")\nteam_stats\n```\n\n Fetching all team stats for team_id: 25901...\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>team</th>\n <th>game_date</th>\n <th>team_id</th>\n <th>team_vs</th>\n <th>team_vs_id</th>\n <th>match_id</th>\n <th>players</th>\n <th>clean_breaks</th>\n <th>conversion_goals</th>\n <th>defenders_beaten</th>\n <th>...</th>\n <th>scrums_total</th>\n <th>scrums_won</th>\n <th>tackles</th>\n <th>territory</th>\n <th>total_free_kicks_conceded</th>\n <th>total_lineouts</th>\n <th>tries</th>\n <th>turnover_knock_on</th>\n <th>turnovers_conceded</th>\n <th>yellow_cards</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Harlequins</td>\n <td>20220102</td>\n <td>25901</td>\n <td>Gloucester Rugby</td>\n <td>25900</td>\n <td>593902</td>\n <td>[290946, 298485, 296815, 296184, 295534, 29512...</td>\n <td>3.0</td>\n <td>2.0</td>\n <td>26.0</td>\n <td>...</td>\n <td>7.0</td>\n <td>7.0</td>\n <td>94.0</td>\n <td>0.63</td>\n <td>1.0</td>\n <td>16.0</td>\n <td>2.0</td>\n <td>9.0</td>\n <td>15.0</td>\n <td>2.0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Harlequins</td>\n <td>20220108</td>\n <td>25901</td>\n <td>Exeter Chiefs</td>\n <td>116227</td>\n <td>593909</td>\n <td>[290946, 296815, 296184, 295534, 295121, 29484...</td>\n <td>5.0</td>\n <td>2.0</td>\n <td>16.0</td>\n <td>...</td>\n <td>11.0</td>\n <td>9.0</td>\n <td>124.0</td>\n <td>0.55</td>\n <td>0.0</td>\n <td>10.0</td>\n <td>2.0</td>\n <td>8.0</td>\n <td>17.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Harlequins</td>\n <td>20220128</td>\n <td>25901</td>\n <td>Bath Rugby</td>\n <td>25898</td>\n <td>593913</td>\n <td>[158708, 299436, 298485, 296815, 296791, 29553...</td>\n <td>7.0</td>\n <td>1.0</td>\n <td>12.0</td>\n <td>...</td>\n <td>8.0</td>\n <td>7.0</td>\n <td>162.0</td>\n <td>0.50</td>\n <td>0.0</td>\n <td>9.0</td>\n <td>3.0</td>\n <td>11.0</td>\n <td>15.0</td>\n <td>1.0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Harlequins</td>\n <td>20220206</td>\n <td>25901</td>\n <td>Sale Sharks</td>\n <td>25908</td>\n <td>593922</td>\n <td>[158708, 299436, 299031, 298764, 298487, 29848...</td>\n <td>7.0</td>\n <td>2.0</td>\n <td>20.0</td>\n <td>...</td>\n <td>5.0</td>\n <td>5.0</td>\n <td>71.0</td>\n <td>0.54</td>\n <td>2.0</td>\n <td>12.0</td>\n <td>2.0</td>\n <td>17.0</td>\n <td>26.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Harlequins</td>\n <td>20220213</td>\n <td>25901</td>\n <td>Saracens</td>\n <td>25909</td>\n <td>593929</td>\n <td>[158708, 299436, 298764, 298487, 298485, 29681...</td>\n <td>3.0</td>\n <td>1.0</td>\n <td>23.0</td>\n <td>...</td>\n <td>4.0</td>\n <td>2.0</td>\n <td>98.0</td>\n <td>0.56</td>\n <td>1.0</td>\n <td>15.0</td>\n <td>1.0</td>\n <td>11.0</td>\n <td>17.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>56</th>\n <td>Harlequins</td>\n <td>20240421</td>\n <td>25901</td>\n <td>Sale Sharks</td>\n <td>25908</td>\n <td>597118</td>\n <td>[290946, 257545, 301432, 299436, 299031, 29681...</td>\n <td>8.0</td>\n <td>3.0</td>\n <td>36.0</td>\n <td>...</td>\n <td>3.0</td>\n <td>3.0</td>\n <td>119.0</td>\n <td>0.45</td>\n <td>0.0</td>\n <td>21.0</td>\n <td>5.0</td>\n <td>8.0</td>\n <td>15.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>57</th>\n <td>Harlequins</td>\n <td>20240427</td>\n <td>25901</td>\n <td>Northampton Saints</td>\n <td>25907</td>\n <td>597122</td>\n <td>[290946, 257545, 301432, 300430, 299436, 29903...</td>\n <td>10.0</td>\n <td>4.0</td>\n <td>22.0</td>\n <td>...</td>\n <td>6.0</td>\n <td>5.0</td>\n <td>125.0</td>\n <td>0.45</td>\n <td>0.0</td>\n <td>12.0</td>\n <td>6.0</td>\n <td>4.0</td>\n <td>6.0</td>\n <td>3.0</td>\n </tr>\n <tr>\n <th>58</th>\n <td>Harlequins</td>\n <td>20240505</td>\n <td>25901</td>\n <td>Stade Toulousain</td>\n <td>25922</td>\n <td>597203</td>\n <td>[290946, 301432, 299436, 299031, 296815, 29679...</td>\n <td>5.0</td>\n <td>3.0</td>\n <td>23.0</td>\n <td>...</td>\n <td>3.0</td>\n <td>2.0</td>\n <td>92.0</td>\n <td>0.47</td>\n <td>0.0</td>\n <td>15.0</td>\n <td>4.0</td>\n <td>8.0</td>\n <td>16.0</td>\n <td>1.0</td>\n </tr>\n <tr>\n <th>59</th>\n <td>Harlequins</td>\n <td>20240511</td>\n <td>25901</td>\n <td>Exeter Chiefs</td>\n <td>116227</td>\n <td>597126</td>\n <td>[290946, 301432, 299436, 299031, 296815, 29679...</td>\n <td>4.0</td>\n <td>3.0</td>\n <td>33.0</td>\n <td>...</td>\n <td>4.0</td>\n <td>3.0</td>\n <td>133.0</td>\n <td>0.40</td>\n <td>0.0</td>\n <td>9.0</td>\n <td>4.0</td>\n <td>7.0</td>\n <td>11.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>60</th>\n <td>Harlequins</td>\n <td>20240518</td>\n <td>25901</td>\n <td>Bristol Rugby</td>\n <td>25899</td>\n <td>597132</td>\n <td>[290946, 301432, 299436, 299031, 299029, 29681...</td>\n <td>6.0</td>\n <td>4.0</td>\n <td>24.0</td>\n <td>...</td>\n <td>4.0</td>\n <td>3.0</td>\n <td>129.0</td>\n <td>0.45</td>\n <td>1.0</td>\n <td>16.0</td>\n <td>4.0</td>\n <td>6.0</td>\n <td>12.0</td>\n <td>0.0</td>\n </tr>\n </tbody>\n</table>\n<p>61 rows \u00d7 42 columns</p>\n</div>\n\nYou can then fetch the team stats for a particular team on a particular\ndate with:\n\n``` python\nfrom rugbypy.team import *\nteam_stats = fetch_team_stats(team_id=\"25901\", date=\"20230108\")\nteam_stats\n```\n\n Fetching team stats for team_id: 25901 on date: 20230108...\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>team</th>\n <th>game_date</th>\n <th>team_id</th>\n <th>team_vs</th>\n <th>team_vs_id</th>\n <th>match_id</th>\n <th>players</th>\n <th>clean_breaks</th>\n <th>conversion_goals</th>\n <th>defenders_beaten</th>\n <th>...</th>\n <th>scrums_total</th>\n <th>scrums_won</th>\n <th>tackles</th>\n <th>territory</th>\n <th>total_free_kicks_conceded</th>\n <th>total_lineouts</th>\n <th>tries</th>\n <th>turnover_knock_on</th>\n <th>turnovers_conceded</th>\n <th>yellow_cards</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>28</th>\n <td>Harlequins</td>\n <td>20230108</td>\n <td>25901</td>\n <td>Sale Sharks</td>\n <td>25908</td>\n <td>595741</td>\n <td>[158708, 299436, 299031, 298485, 295117, 29477...</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>24.0</td>\n <td>...</td>\n <td>7.0</td>\n <td>5.0</td>\n <td>125.0</td>\n <td>0.41</td>\n <td>0.0</td>\n <td>11.0</td>\n <td>2.0</td>\n <td>8.0</td>\n <td>17.0</td>\n <td>0.0</td>\n </tr>\n </tbody>\n</table>\n<p>1 rows \u00d7 42 columns</p>\n</div>\n\n### Player Stats\n\nWe have the ability to fetch player stats for all the games they have\nbeen involved in. We firstly identify the \\`player_id\\`\\` of a player by\nsearching our player manifest file.\n\n``` python\nfrom rugbypy.player import *\nplayer_manifest = fetch_all_players()\nplayer_manifest.head()\n```\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>player_id</th>\n <th>player_name</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>262799</td>\n <td>AJ MacGinty</td>\n </tr>\n <tr>\n <th>1</th>\n <td>295135</td>\n <td>Bevan Rodd</td>\n </tr>\n <tr>\n <th>2</th>\n <td>294815</td>\n <td>Tom Roebuck</td>\n </tr>\n <tr>\n <th>3</th>\n <td>294814</td>\n <td>Gus Warr</td>\n </tr>\n <tr>\n <th>4</th>\n <td>294810</td>\n <td>Sam Dugdale</td>\n </tr>\n </tbody>\n</table>\n</div>\n\nOr we can search for a certain player through our similarity tool:\n\n``` python\nfrom rugbypy.player import *\nindividual_player = fetch_player(name=\"johnny sexton\")\nindividual_player\n```\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>player_id</th>\n <th>player_name</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1345</th>\n <td>16004</td>\n <td>Johnny Sexton</td>\n </tr>\n <tr>\n <th>2156</th>\n <td>291349</td>\n <td>Ayden Johnstone</td>\n </tr>\n <tr>\n <th>2795</th>\n <td>149315</td>\n <td>Anthony Watson</td>\n </tr>\n </tbody>\n</table>\n</div>\n\nOnce we have their `player_id` we can fetch their player stats using\n[`fetch_player_stats`](https://seanyboi.github.io/rugbypy/player.html#fetch_player_stats).\nIn this example we fetch Johnny Sextons player stats:\n\n``` python\nfrom rugbypy.player import *\nplayer_stats = fetch_player_stats(player_id=\"16004\")\nplayer_stats\n```\n\n Fetching all player stats for player_id: 16004...\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>player_id</th>\n <th>game_date</th>\n <th>name</th>\n <th>team</th>\n <th>team_id</th>\n <th>competition_id</th>\n <th>competition</th>\n <th>match_id</th>\n <th>team_vs</th>\n <th>team_vs_id</th>\n <th>...</th>\n <th>rucks_won</th>\n <th>runs</th>\n <th>tackles</th>\n <th>total_free_kicks_conceded</th>\n <th>total_lineouts</th>\n <th>tries</th>\n <th>try_assists</th>\n <th>turnover_knock_on</th>\n <th>turnovers_conceded</th>\n <th>yellow_cards</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>16004</td>\n <td>20220205</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>595080</td>\n <td>Wales</td>\n <td>4</td>\n <td>...</td>\n <td>4.0</td>\n <td>9.0</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>2.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>16004</td>\n <td>20220227</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>595088</td>\n <td>Italy</td>\n <td>20</td>\n <td>...</td>\n <td>1.0</td>\n <td>3.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>16004</td>\n <td>20220312</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>595091</td>\n <td>England</td>\n <td>1</td>\n <td>...</td>\n <td>4.0</td>\n <td>12.0</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>16004</td>\n <td>20220319</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>595093</td>\n <td>Scotland</td>\n <td>2</td>\n <td>...</td>\n <td>3.0</td>\n <td>3.0</td>\n <td>10.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>16004</td>\n <td>20220610</td>\n <td>Johnny Sexton</td>\n <td>Leinster</td>\n <td>25924</td>\n <td>270557</td>\n <td>United Rugby Championship</td>\n <td>594483</td>\n <td>Bulls</td>\n <td>25953</td>\n <td>...</td>\n <td>0.0</td>\n <td>3.0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>5</th>\n <td>16004</td>\n <td>20221216</td>\n <td>Johnny Sexton</td>\n <td>Leinster</td>\n <td>25924</td>\n <td>271937</td>\n <td>European Rugby Champions Cup</td>\n <td>597405</td>\n <td>Gloucester Rugby</td>\n <td>25900</td>\n <td>...</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>6</th>\n <td>16004</td>\n <td>20230204</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>596205</td>\n <td>Wales</td>\n <td>4</td>\n <td>...</td>\n <td>3.0</td>\n <td>8.0</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>7</th>\n <td>16004</td>\n <td>20230211</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>596208</td>\n <td>France</td>\n <td>9</td>\n <td>...</td>\n <td>1.0</td>\n <td>5.0</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>8</th>\n <td>16004</td>\n <td>20230312</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>596216</td>\n <td>Scotland</td>\n <td>2</td>\n <td>...</td>\n <td>2.0</td>\n <td>5.0</td>\n <td>9.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>2.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>9</th>\n <td>16004</td>\n <td>20230318</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>180659</td>\n <td>Six Nations</td>\n <td>596219</td>\n <td>England</td>\n <td>1</td>\n <td>...</td>\n <td>6.0</td>\n <td>9.0</td>\n <td>5.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>2.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>10</th>\n <td>16004</td>\n <td>20230909</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>164205</td>\n <td>Rugby World Cup</td>\n <td>596156</td>\n <td>Romania</td>\n <td>12</td>\n <td>...</td>\n <td>0.0</td>\n <td>5.0</td>\n <td>4.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>11</th>\n <td>16004</td>\n <td>20230916</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>164205</td>\n <td>Rugby World Cup</td>\n <td>596166</td>\n <td>Tonga</td>\n <td>16</td>\n <td>...</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>12</th>\n <td>16004</td>\n <td>20230923</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>164205</td>\n <td>Rugby World Cup</td>\n <td>596175</td>\n <td>South Africa</td>\n <td>5</td>\n <td>...</td>\n <td>1.0</td>\n <td>3.0</td>\n <td>11.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>13</th>\n <td>16004</td>\n <td>20231007</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>164205</td>\n <td>Rugby World Cup</td>\n <td>596190</td>\n <td>Scotland</td>\n <td>2</td>\n <td>...</td>\n <td>0.0</td>\n <td>5.0</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>14</th>\n <td>16004</td>\n <td>20231014</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>164205</td>\n <td>Rugby World Cup</td>\n <td>596195</td>\n <td>New Zealand</td>\n <td>8</td>\n <td>...</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>11.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n </tbody>\n</table>\n<p>15 rows \u00d7 41 columns</p>\n</div>\n\nWe can also fetch the player stats on a particular date using\n[`fetch_player_stats`](https://seanyboi.github.io/rugbypy/player.html#fetch_player_stats).\nIn this example we fetch Johnny Sextons player stats on 2023-09-16:\n\n``` python\nfrom rugbypy.player import *\nplayer_stats = fetch_player_stats(player_id=\"16004\", date=\"20230916\")\nplayer_stats\n```\n\n Fetching player stats for player_id: 16004 on date: 20230916...\n\n<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>player_id</th>\n <th>game_date</th>\n <th>name</th>\n <th>team</th>\n <th>team_id</th>\n <th>competition_id</th>\n <th>competition</th>\n <th>match_id</th>\n <th>team_vs</th>\n <th>team_vs_id</th>\n <th>...</th>\n <th>rucks_won</th>\n <th>runs</th>\n <th>tackles</th>\n <th>total_free_kicks_conceded</th>\n <th>total_lineouts</th>\n <th>tries</th>\n <th>try_assists</th>\n <th>turnover_knock_on</th>\n <th>turnovers_conceded</th>\n <th>yellow_cards</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>11</th>\n <td>16004</td>\n <td>20230916</td>\n <td>Johnny Sexton</td>\n <td>Ireland</td>\n <td>3</td>\n <td>164205</td>\n <td>Rugby World Cup</td>\n <td>596166</td>\n <td>Tonga</td>\n <td>16</td>\n <td>...</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n </tbody>\n</table>\n<p>1 rows \u00d7 41 columns</p>\n</div>\n\n\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "Repository for rugby data analytics",
"version": "2.0.0",
"project_urls": {
"Homepage": "https://github.com/seanyboi/rugbypy"
},
"split_keywords": [
"nbdev",
"jupyter",
"notebook",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cb8137ce339f8a6a39f9f1a8cbb3ae516599ddf881fe6e2c5edd223b75cbe6ff",
"md5": "f6159ea2c5ae3af576535b5568aa42b6",
"sha256": "47718dcb19e3412b262487b1f748c6ad72543764bc429ea9417e0d60ff27b825"
},
"downloads": -1,
"filename": "rugbypy-2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f6159ea2c5ae3af576535b5568aa42b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 13054,
"upload_time": "2025-01-07T21:43:53",
"upload_time_iso_8601": "2025-01-07T21:43:53.160969Z",
"url": "https://files.pythonhosted.org/packages/cb/81/37ce339f8a6a39f9f1a8cbb3ae516599ddf881fe6e2c5edd223b75cbe6ff/rugbypy-2.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "58011cd8a8d4b540aab513fb2d18510bd45caf7817a9e4fd7c9977f4e417ee9f",
"md5": "58c3f65f63436a7a5120f420e9c99426",
"sha256": "e84e3d72d91e4d5a1e61b0f3fdf1682736317cd91373cd3b786f02bbc96164a5"
},
"downloads": -1,
"filename": "rugbypy-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "58c3f65f63436a7a5120f420e9c99426",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 16263,
"upload_time": "2025-01-07T21:43:54",
"upload_time_iso_8601": "2025-01-07T21:43:54.408628Z",
"url": "https://files.pythonhosted.org/packages/58/01/1cd8a8d4b540aab513fb2d18510bd45caf7817a9e4fd7c9977f4e417ee9f/rugbypy-2.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-07 21:43:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "seanyboi",
"github_project": "rugbypy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rugbypy"
}