Library for easy querying of advanced NHL statistics.
Project description
pyhockey
Tool for querying advanced NHL data provided by MoneyPuck.com and NaturalStatTrick.com
Overview
A straightforward library that uses DuckDB and Polars to query a seperately-maintained database of NHL data scraped from MoneyPuck (https://www.moneypuck.com) and NaturalStatTrick (https://www.naturalstattrick.com).
Allows for easy access to season-summary data at the player- or team-level, as well as game-by-game data for each team. Game-by-game data is also available for players, but as of October 2025, this is only available for the 2025/2026 NHL season.
Examples
Season Summaries
To get the stats for each skater (i.e. non-goalies) on a team in a specific season with a minimum 1000 minutes of icetime:
>>> import pyhockey
>>> pyhockey.skater_summary(team='TOR', season=2024, min_icetime=1000)
shape: (14, 21)
┌──────────┬────────┬──────────────────────┬──────┬──────────┬───────────┬─────────────┬─────────┬────────┬───────┬───────────┬──────────┬───────────────┬──────────────┬─────────────────┬─────────────────────┬──────────────────┬──────────────────────┬───────────────┬──────────────┬────────────────┐
│ playerID ┆ season ┆ name ┆ team ┆ position ┆ situation ┆ gamesPlayed ┆ iceTime ┆ points ┆ goals ┆ xGoalsFor ┆ goalsFor ┆ xGoalsAgainst ┆ goalsAgainst ┆ goalsForPerHour ┆ goalsAgainstPerHour ┆ xGoalsForPerHour ┆ xGoalsAgainstPerHour ┆ pointsPerHour ┆ goalsPerHour ┆ averageIceTime │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str ┆ str ┆ str ┆ str ┆ i64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞══════════╪════════╪══════════════════════╪══════╪══════════╪═══════════╪═════════════╪═════════╪════════╪═══════╪═══════════╪══════════╪═══════════════╪══════════════╪═════════════════╪═════════════════════╪══════════════════╪══════════════════════╪═══════════════╪══════════════╪════════════════╡
│ 8476931 ┆ 2024 ┆ Jake McCabe ┆ TOR ┆ D ┆ all ┆ 66 ┆ 1419.83 ┆ 23.0 ┆ 2.0 ┆ 64.72 ┆ 76.0 ┆ 74.66 ┆ 75.0 ┆ 3.21 ┆ 3.17 ┆ 2.73 ┆ 3.16 ┆ 0.97 ┆ 0.08 ┆ 21.51 │
│ 8476872 ┆ 2024 ┆ Scott Laughton ┆ TOR ┆ C ┆ all ┆ 80 ┆ 1168.03 ┆ 31.0 ┆ 13.0 ┆ 47.29 ┆ 42.0 ┆ 59.62 ┆ 76.0 ┆ 2.16 ┆ 3.9 ┆ 2.43 ┆ 3.06 ┆ 1.59 ┆ 0.67 ┆ 14.6 │
│ 8479318 ┆ 2024 ┆ Auston Matthews ┆ TOR ┆ C ┆ all ┆ 67 ┆ 1371.63 ┆ 78.0 ┆ 33.0 ┆ 101.7 ┆ 105.0 ┆ 82.36 ┆ 78.0 ┆ 4.59 ┆ 3.41 ┆ 4.45 ┆ 3.6 ┆ 3.41 ┆ 1.44 ┆ 20.47 │
│ 8475690 ┆ 2024 ┆ Chris Tanev ┆ TOR ┆ D ┆ all ┆ 75 ┆ 1481.2 ┆ 18.0 ┆ 3.0 ┆ 64.67 ┆ 72.0 ┆ 71.17 ┆ 64.0 ┆ 2.92 ┆ 2.59 ┆ 2.62 ┆ 2.88 ┆ 0.73 ┆ 0.12 ┆ 19.75 │
│ 8482720 ┆ 2024 ┆ Matthew Knies ┆ TOR ┆ L ┆ all ┆ 78 ┆ 1444.17 ┆ 58.0 ┆ 29.0 ┆ 91.62 ┆ 103.0 ┆ 77.97 ┆ 74.0 ┆ 4.28 ┆ 3.07 ┆ 3.81 ┆ 3.24 ┆ 2.41 ┆ 1.2 ┆ 18.51 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 8478443 ┆ 2024 ┆ Brandon Carlo ┆ TOR ┆ D ┆ all ┆ 83 ┆ 1568.7 ┆ 12.0 ┆ 1.0 ┆ 59.18 ┆ 59.0 ┆ 85.97 ┆ 90.0 ┆ 2.26 ┆ 3.44 ┆ 2.26 ┆ 3.29 ┆ 0.46 ┆ 0.04 ┆ 18.9 │
│ 8477939 ┆ 2024 ┆ William Nylander ┆ TOR ┆ R ┆ all ┆ 82 ┆ 1599.78 ┆ 84.0 ┆ 45.0 ┆ 109.83 ┆ 122.0 ┆ 83.84 ┆ 67.0 ┆ 4.58 ┆ 2.51 ┆ 4.12 ┆ 3.14 ┆ 3.15 ┆ 1.69 ┆ 19.51 │
│ 8475171 ┆ 2024 ┆ Oliver Ekman-Larsson ┆ TOR ┆ D ┆ all ┆ 77 ┆ 1622.28 ┆ 29.0 ┆ 4.0 ┆ 82.82 ┆ 86.0 ┆ 71.64 ┆ 70.0 ┆ 3.18 ┆ 2.59 ┆ 3.06 ┆ 2.65 ┆ 1.07 ┆ 0.15 ┆ 21.07 │
│ 8481122 ┆ 2024 ┆ Simon Benoit ┆ TOR ┆ D ┆ all ┆ 78 ┆ 1290.62 ┆ 10.0 ┆ 1.0 ┆ 42.76 ┆ 48.0 ┆ 72.78 ┆ 58.0 ┆ 2.23 ┆ 2.7 ┆ 1.99 ┆ 3.38 ┆ 0.46 ┆ 0.05 ┆ 16.55 │
│ 8477503 ┆ 2024 ┆ Max Domi ┆ TOR ┆ C ┆ all ┆ 74 ┆ 1048.67 ┆ 33.0 ┆ 8.0 ┆ 48.57 ┆ 53.0 ┆ 43.75 ┆ 39.0 ┆ 3.03 ┆ 2.23 ┆ 2.78 ┆ 2.5 ┆ 1.89 ┆ 0.46 ┆ 14.17 │
└──────────┴────────┴──────────────────────┴──────┴──────────┴───────────┴─────────────┴─────────┴────────┴───────┴───────────┴──────────┴───────────────┴──────────────┴─────────────────┴─────────────────────┴──────────────────┴──────────────────────┴───────────────┴──────────────┴────────────────┘
Can pass multiple values for team or season, as well as specify the situation ('5on5', '4on5', or '5on4'):
>>> import pyhockey
>>> pyhockey.skater_summary(team=['TOR', 'MTL'], season=[2023, 2024], situation='5on5', min_icetime=1000)
shape: (35, 21)
┌──────────┬────────┬──────────────────────┬──────┬──────────┬───────────┬─────────────┬─────────┬────────┬───────┬───────────┬──────────┬───────────────┬──────────────┬─────────────────┬─────────────────────┬──────────────────┬──────────────────────┬───────────────┬──────────────┬────────────────┐
│ playerID ┆ season ┆ name ┆ team ┆ position ┆ situation ┆ gamesPlayed ┆ iceTime ┆ points ┆ goals ┆ xGoalsFor ┆ goalsFor ┆ xGoalsAgainst ┆ goalsAgainst ┆ goalsForPerHour ┆ goalsAgainstPerHour ┆ xGoalsForPerHour ┆ xGoalsAgainstPerHour ┆ pointsPerHour ┆ goalsPerHour ┆ averageIceTime │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str ┆ str ┆ str ┆ str ┆ i64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞══════════╪════════╪══════════════════════╪══════╪══════════╪═══════════╪═════════════╪═════════╪════════╪═══════╪═══════════╪══════════╪═══════════════╪══════════════╪═════════════════╪═════════════════════╪══════════════════╪══════════════════════╪═══════════════╪══════════════╪════════════════╡
│ 8481540 ┆ 2023 ┆ Cole Caufield ┆ MTL ┆ R ┆ 5on5 ┆ 82 ┆ 1239.5 ┆ 38.0 ┆ 16.0 ┆ 50.03 ┆ 58.0 ┆ 53.99 ┆ 44.0 ┆ 2.81 ┆ 2.13 ┆ 2.42 ┆ 2.61 ┆ 1.84 ┆ 0.77 ┆ 15.12 │
│ 8476875 ┆ 2023 ┆ Mike Matheson ┆ MTL ┆ D ┆ 5on5 ┆ 82 ┆ 1472.85 ┆ 21.0 ┆ 4.0 ┆ 53.18 ┆ 49.0 ┆ 64.35 ┆ 60.0 ┆ 2.0 ┆ 2.44 ┆ 2.17 ┆ 2.62 ┆ 0.86 ┆ 0.16 ┆ 17.96 │
│ 8483515 ┆ 2023 ┆ Juraj Slafkovsky ┆ MTL ┆ L ┆ 5on5 ┆ 82 ┆ 1192.77 ┆ 33.0 ┆ 13.0 ┆ 51.15 ┆ 53.0 ┆ 53.25 ┆ 53.0 ┆ 2.67 ┆ 2.67 ┆ 2.57 ┆ 2.68 ┆ 1.66 ┆ 0.65 ┆ 14.55 │
│ 8482087 ┆ 2023 ┆ Kaiden Guhle ┆ MTL ┆ D ┆ 5on5 ┆ 70 ┆ 1253.7 ┆ 19.0 ┆ 4.0 ┆ 43.84 ┆ 48.0 ┆ 51.59 ┆ 59.0 ┆ 2.3 ┆ 2.82 ┆ 2.1 ┆ 2.47 ┆ 0.91 ┆ 0.19 ┆ 17.91 │
│ 8478133 ┆ 2023 ┆ Jake Evans ┆ MTL ┆ C ┆ 5on5 ┆ 82 ┆ 1015.2 ┆ 22.0 ┆ 5.0 ┆ 37.41 ┆ 34.0 ┆ 44.4 ┆ 42.0 ┆ 2.01 ┆ 2.48 ┆ 2.21 ┆ 2.62 ┆ 1.3 ┆ 0.3 ┆ 12.38 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 8478443 ┆ 2024 ┆ Brandon Carlo ┆ TOR ┆ D ┆ 5on5 ┆ 83 ┆ 1323.27 ┆ 11.0 ┆ 1.0 ┆ 49.1 ┆ 46.0 ┆ 52.38 ┆ 50.0 ┆ 2.09 ┆ 2.27 ┆ 2.23 ┆ 2.38 ┆ 0.5 ┆ 0.05 ┆ 15.94 │
│ 8477939 ┆ 2024 ┆ William Nylander ┆ TOR ┆ R ┆ 5on5 ┆ 82 ┆ 1241.83 ┆ 42.0 ┆ 24.0 ┆ 54.43 ┆ 61.0 ┆ 52.17 ┆ 41.0 ┆ 2.95 ┆ 1.98 ┆ 2.63 ┆ 2.52 ┆ 2.03 ┆ 1.16 ┆ 15.14 │
│ 8475171 ┆ 2024 ┆ Oliver Ekman-Larsson ┆ TOR ┆ D ┆ 5on5 ┆ 77 ┆ 1370.22 ┆ 24.0 ┆ 2.0 ┆ 54.29 ┆ 60.0 ┆ 54.14 ┆ 51.0 ┆ 2.63 ┆ 2.23 ┆ 2.38 ┆ 2.37 ┆ 1.05 ┆ 0.09 ┆ 17.8 │
│ 8481122 ┆ 2024 ┆ Simon Benoit ┆ TOR ┆ D ┆ 5on5 ┆ 78 ┆ 1110.95 ┆ 9.0 ┆ 1.0 ┆ 36.31 ┆ 44.0 ┆ 48.4 ┆ 34.0 ┆ 2.38 ┆ 1.84 ┆ 1.96 ┆ 2.61 ┆ 0.49 ┆ 0.05 ┆ 14.24 │
│ 8476931 ┆ 2024 ┆ Jake McCabe ┆ TOR ┆ D ┆ 5on5 ┆ 66 ┆ 1173.87 ┆ 21.0 ┆ 2.0 ┆ 46.64 ┆ 59.0 ┆ 41.37 ┆ 41.0 ┆ 3.02 ┆ 2.1 ┆ 2.38 ┆ 2.11 ┆ 1.07 ┆ 0.1 ┆ 17.79 │
└──────────┴────────┴──────────────────────┴──────┴──────────┴───────────┴─────────────┴─────────┴────────┴───────┴───────────┴──────────┴───────────────┴──────────────┴─────────────────┴─────────────────────┴──────────────────┴──────────────────────┴───────────────┴──────────────┴────────────────┘
When querying multiple seasons, can set combine_seasons=True to combine stats for all seasons into a single row:
>>> import pyhockey
>>> pyhockey.skater_summary(team='TOR', season=[2022, 2023, 2024], situation='5on5', min_icetime=1000, combine_seasons=True)
shape: (21, 21)
┌──────────┬────────────────┬──────────────────────┬──────┬──────────┬───────────┬─────────────┬─────────┬────────┬───────┬───────────┬──────────┬───────────────┬──────────────┬─────────────────┬─────────────────────┬──────────────────┬──────────────────────┬───────────────┬──────────────┬────────────────┐
│ playerID ┆ season ┆ name ┆ team ┆ position ┆ situation ┆ gamesPlayed ┆ iceTime ┆ points ┆ goals ┆ xGoalsFor ┆ goalsFor ┆ xGoalsAgainst ┆ goalsAgainst ┆ goalsForPerHour ┆ goalsAgainstPerHour ┆ xGoalsForPerHour ┆ xGoalsAgainstPerHour ┆ pointsPerHour ┆ goalsPerHour ┆ averageIceTime │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ str ┆ str ┆ str ┆ i16 ┆ f64 ┆ i16 ┆ i16 ┆ f64 ┆ i16 ┆ f64 ┆ i16 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞══════════╪════════════════╪══════════════════════╪══════╪══════════╪═══════════╪═════════════╪═════════╪════════╪═══════╪═══════════╪══════════╪═══════════════╪══════════════╪═════════════════╪═════════════════════╪══════════════════╪══════════════════════╪═══════════════╪══════════════╪════════════════╡
│ 8470966 ┆ 2022 ┆ Mark Giordano ┆ TOR ┆ D ┆ 5on5 ┆ 78 ┆ 1215.2 ┆ 21 ┆ 2 ┆ 62.49 ┆ 56 ┆ 47.55 ┆ 39 ┆ 2.76 ┆ 1.93 ┆ 3.09 ┆ 2.35 ┆ 1.04 ┆ 0.1 ┆ 15.58 │
│ 8474568 ┆ 2022 ┆ Luke Schenn ┆ TOR ┆ D ┆ 5on5 ┆ 70 ┆ 1015.93 ┆ 20 ┆ 4 ┆ 40.18 ┆ 49 ┆ 47.92 ┆ 47 ┆ 2.89 ┆ 2.78 ┆ 2.37 ┆ 2.83 ┆ 1.18 ┆ 0.24 ┆ 14.51 │
│ 8474673 ┆ 2022,2023 ┆ TJ Brodie ┆ TOR ┆ D ┆ 5on5 ┆ 136 ┆ 2460.82 ┆ 34 ┆ 2 ┆ 108.41 ┆ 114 ┆ 98.62 ┆ 102 ┆ 2.78 ┆ 2.49 ┆ 2.64 ┆ 2.4 ┆ 0.83 ┆ 0.05 ┆ 18.09 │
│ 8475166 ┆ 2022,2023,2024 ┆ John Tavares ┆ TOR ┆ C ┆ 5on5 ┆ 235 ┆ 3278.6 ┆ 113 ┆ 51 ┆ 151.32 ┆ 157 ┆ 133.9 ┆ 123 ┆ 2.87 ┆ 2.25 ┆ 2.77 ┆ 2.45 ┆ 2.07 ┆ 0.93 ┆ 13.95 │
│ 8475171 ┆ 2024 ┆ Oliver Ekman-Larsson ┆ TOR ┆ D ┆ 5on5 ┆ 77 ┆ 1370.22 ┆ 24 ┆ 2 ┆ 54.29 ┆ 60 ┆ 54.14 ┆ 51 ┆ 2.63 ┆ 2.23 ┆ 2.38 ┆ 2.37 ┆ 1.05 ┆ 0.09 ┆ 17.8 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 8480043 ┆ 2022 ┆ Timothy Liljegren ┆ TOR ┆ D ┆ 5on5 ┆ 67 ┆ 1035.42 ┆ 13 ┆ 5 ┆ 52.53 ┆ 50 ┆ 41.75 ┆ 31 ┆ 2.9 ┆ 1.8 ┆ 3.04 ┆ 2.42 ┆ 0.75 ┆ 0.29 ┆ 15.45 │
│ 8480144 ┆ 2022 ┆ David Kampf ┆ TOR ┆ C ┆ 5on5 ┆ 82 ┆ 1007.92 ┆ 23 ┆ 7 ┆ 40.85 ┆ 37 ┆ 40.28 ┆ 38 ┆ 2.2 ┆ 2.26 ┆ 2.43 ┆ 2.4 ┆ 1.37 ┆ 0.42 ┆ 12.29 │
│ 8480950 ┆ 2023 ┆ Ilya Lyubushkin ┆ TOR ┆ D ┆ 5on5 ┆ 74 ┆ 1029.3 ┆ 8 ┆ 0 ┆ 37.94 ┆ 37 ┆ 46.46 ┆ 50 ┆ 2.16 ┆ 2.91 ┆ 2.21 ┆ 2.71 ┆ 0.47 ┆ 0.0 ┆ 13.91 │
│ 8481122 ┆ 2024 ┆ Simon Benoit ┆ TOR ┆ D ┆ 5on5 ┆ 78 ┆ 1110.95 ┆ 9 ┆ 1 ┆ 36.31 ┆ 44 ┆ 48.4 ┆ 34 ┆ 2.38 ┆ 1.84 ┆ 1.96 ┆ 2.61 ┆ 0.49 ┆ 0.05 ┆ 14.24 │
│ 8482720 ┆ 2023,2024 ┆ Matthew Knies ┆ TOR ┆ L ┆ 5on5 ┆ 158 ┆ 2103.37 ┆ 68 ┆ 37 ┆ 94.97 ┆ 108 ┆ 83.82 ┆ 84 ┆ 3.08 ┆ 2.4 ┆ 2.71 ┆ 2.39 ┆ 1.94 ┆ 1.06 ┆ 13.31 │
└──────────┴────────────────┴──────────────────────┴──────┴──────────┴───────────┴─────────────┴─────────┴────────┴───────┴───────────┴──────────┴───────────────┴──────────────┴─────────────────┴─────────────────────┴──────────────────┴──────────────────────┴───────────────┴──────────────┴────────────────┘
The goalie_summary() and team_summary() functions work in the same way:
# goalie_summary() uses min_games_played instead of min_icetime
>>> import pyhockey
>>> pyhockey.goalie_summary(team=['TOR', 'MTL'], season=[2023, 2024], min_games_played=10)
shape: (10, 18)
┌──────────┬────────┬──────────────────┬──────┬───────────┬─────────────┬─────────┬────────┬───────┬────────────────┬───────────────────┬─────────────────┬─────────────────┬────────────────────┬──────────────────┬────────────────┬───────────────────┬─────────────────┐
│ playerID ┆ season ┆ name ┆ team ┆ situation ┆ gamesPlayed ┆ iceTime ┆ xGoals ┆ goals ┆ lowDangerShots ┆ mediumDangerShots ┆ highDangerShots ┆ lowDangerxGoals ┆ mediumDangerxGoals ┆ highDangerxGoals ┆ lowDangerGoals ┆ mediumDangerGoals ┆ highDangerGoals │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str ┆ str ┆ str ┆ i64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞══════════╪════════╪══════════════════╪══════╪═══════════╪═════════════╪═════════╪════════╪═══════╪════════════════╪═══════════════════╪═════════════════╪═════════════════╪════════════════════╪══════════════════╪════════════════╪═══════════════════╪═════════════════╡
│ 8478470 ┆ 2023 ┆ Sam Montembeault ┆ MTL ┆ all ┆ 41 ┆ 2428.77 ┆ 130.34 ┆ 127.0 ┆ 1432.0 ┆ 313.0 ┆ 151.0 ┆ 40.5 ┆ 39.47 ┆ 50.37 ┆ 46.0 ┆ 49.0 ┆ 32.0 │
│ 8480051 ┆ 2023 ┆ Cayden Primeau ┆ MTL ┆ all ┆ 23 ┆ 1324.83 ┆ 69.58 ┆ 66.0 ┆ 799.0 ┆ 182.0 ┆ 70.0 ┆ 22.73 ┆ 23.23 ┆ 23.62 ┆ 26.0 ┆ 25.0 ┆ 15.0 │
│ 8480051 ┆ 2024 ┆ Cayden Primeau ┆ MTL ┆ all ┆ 11 ┆ 523.7 ┆ 31.53 ┆ 41.0 ┆ 267.0 ┆ 88.0 ┆ 37.0 ┆ 9.05 ┆ 10.95 ┆ 11.52 ┆ 22.0 ┆ 14.0 ┆ 5.0 │
│ 8482487 ┆ 2024 ┆ Jakub Dobes ┆ MTL ┆ all ┆ 16 ┆ 874.78 ┆ 49.03 ┆ 40.0 ┆ 481.0 ┆ 141.0 ┆ 51.0 ┆ 14.42 ┆ 18.03 ┆ 16.58 ┆ 14.0 ┆ 20.0 ┆ 6.0 │
│ 8478470 ┆ 2024 ┆ Sam Montembeault ┆ MTL ┆ all ┆ 62 ┆ 3533.98 ┆ 190.59 ┆ 166.0 ┆ 1864.0 ┆ 497.0 ┆ 224.0 ┆ 54.67 ┆ 62.12 ┆ 73.8 ┆ 61.0 ┆ 66.0 ┆ 39.0 │
│ 8478492 ┆ 2023 ┆ Ilya Samsonov ┆ TOR ┆ all ┆ 40 ┆ 2300.97 ┆ 111.86 ┆ 120.0 ┆ 1251.0 ┆ 272.0 ┆ 136.0 ┆ 34.27 ┆ 32.97 ┆ 44.63 ┆ 44.0 ┆ 41.0 ┆ 35.0 │
│ 8474889 ┆ 2023 ┆ Martin Jones ┆ TOR ┆ all ┆ 22 ┆ 1169.67 ┆ 62.3 ┆ 56.0 ┆ 632.0 ┆ 153.0 ┆ 72.0 ┆ 19.05 ┆ 19.42 ┆ 23.84 ┆ 21.0 ┆ 21.0 ┆ 14.0 │
│ 8479361 ┆ 2023 ┆ Joseph Woll ┆ TOR ┆ all ┆ 25 ┆ 1471.65 ┆ 79.17 ┆ 72.0 ┆ 786.0 ┆ 212.0 ┆ 96.0 ┆ 22.72 ┆ 25.96 ┆ 30.49 ┆ 30.0 ┆ 23.0 ┆ 19.0 │
│ 8479361 ┆ 2024 ┆ Joseph Woll ┆ TOR ┆ all ┆ 42 ┆ 2442.33 ┆ 127.85 ┆ 111.0 ┆ 1354.0 ┆ 333.0 ┆ 145.0 ┆ 38.31 ┆ 40.97 ┆ 48.57 ┆ 45.0 ┆ 42.0 ┆ 24.0 │
│ 8476932 ┆ 2024 ┆ Anthony Stolarz ┆ TOR ┆ all ┆ 34 ┆ 1986.9 ┆ 96.78 ┆ 71.0 ┆ 1142.0 ┆ 248.0 ┆ 111.0 ┆ 30.41 ┆ 31.81 ┆ 34.58 ┆ 24.0 ┆ 27.0 ┆ 20.0 │
└──────────┴────────┴──────────────────┴──────┴───────────┴─────────────┴─────────┴────────┴───────┴────────────────┴───────────────────┴─────────────────┴─────────────────┴────────────────────┴──────────────────┴────────────────┴───────────────────┴─────────────────┘
>>> import pyhockey
>>> pyhockey.team_summary(season=list(range(2019, 2025)), combine_seasons=True)
shape: (33, 14)
┌───────────────────────────────┬──────┬───────────┬─────────────┬──────────┬─────────────┬──────────┬───────────────┬──────────────┬─────────────────┬─────────────────────┬──────────────────┬──────────────────────┬────────────────┐
│ season ┆ team ┆ situation ┆ gamesPlayed ┆ iceTime ┆ xGoalsFor ┆ goalsFor ┆ xGoalsAgainst ┆ goalsAgainst ┆ goalsForPerHour ┆ goalsAgainstPerHour ┆ xGoalsForPerHour ┆ xGoalsAgainstPerHour ┆ averageIceTime │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str ┆ i16 ┆ f64 ┆ f32 ┆ i16 ┆ f32 ┆ i16 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞═══════════════════════════════╪══════╪═══════════╪═════════════╪══════════╪═════════════╪══════════╪═══════════════╪══════════════╪═════════════════╪═════════════════════╪══════════════════╪══════════════════════╪════════════════╡
│ 2019,2020,2021,2022,2023,2024 ┆ BOS ┆ all ┆ 454 ┆ 27590.15 ┆ 1351.319946 ┆ 1430 ┆ 1245.98999 ┆ 1185 ┆ 3.11 ┆ 2.58 ┆ 2.94 ┆ 2.71 ┆ 60.77 │
│ 2019,2020,2021,2022,2023,2024 ┆ PHI ┆ all ┆ 453 ┆ 27540.25 ┆ 1259.869995 ┆ 1278 ┆ 1328.959961 ┆ 1497 ┆ 2.78 ┆ 3.26 ┆ 2.74 ┆ 2.9 ┆ 60.8 │
│ 2019,2020,2021,2022,2023,2024 ┆ CAR ┆ all ┆ 452 ┆ 27429.78 ┆ 1507.25 ┆ 1474 ┆ 1173.410034 ┆ 1178 ┆ 3.22 ┆ 2.58 ┆ 3.3 ┆ 2.57 ┆ 60.69 │
│ 2019,2020,2021,2022,2023,2024 ┆ DAL ┆ all ┆ 453 ┆ 27557.75 ┆ 1378.920044 ┆ 1417 ┆ 1205.469971 ┆ 1235 ┆ 3.09 ┆ 2.69 ┆ 3.0 ┆ 2.62 ┆ 60.83 │
│ 2019,2020,2021,2022,2023,2024 ┆ NYI ┆ all ┆ 452 ┆ 27468.3 ┆ 1235.060059 ┆ 1279 ┆ 1275.469971 ┆ 1278 ┆ 2.79 ┆ 2.79 ┆ 2.7 ┆ 2.79 ┆ 60.77 │
│ 2019,2020,2021,2022,2023,2024 ┆ NSH ┆ all ┆ 453 ┆ 27477.9 ┆ 1337.890015 ┆ 1326 ┆ 1357.589966 ┆ 1376 ┆ 2.9 ┆ 3.0 ┆ 2.92 ┆ 2.96 ┆ 60.66 │
│ 2019,2020,2021,2022,2023,2024 ┆ CGY ┆ all ┆ 454 ┆ 27574.43 ┆ 1347.800049 ┆ 1381 ┆ 1256.810059 ┆ 1330 ┆ 3.0 ┆ 2.89 ┆ 2.93 ┆ 2.73 ┆ 60.74 │
│ 2019,2020,2021,2022,2023,2024 ┆ LAK ┆ all ┆ 454 ┆ 27551.97 ┆ 1333.219971 ┆ 1331 ┆ 1235.550049 ┆ 1277 ┆ 2.9 ┆ 2.78 ┆ 2.9 ┆ 2.69 ┆ 60.69 │
│ 2019,2020,2021,2022,2023,2024 ┆ VAN ┆ all ┆ 453 ┆ 27519.18 ┆ 1276.26001 ┆ 1399 ┆ 1326.109985 ┆ 1397 ┆ 3.05 ┆ 3.05 ┆ 2.78 ┆ 2.89 ┆ 60.75 │
│ 2019,2020,2021,2022,2023,2024 ┆ ANA ┆ all ┆ 455 ┆ 27609.75 ┆ 1138.800049 ┆ 1159 ┆ 1449.160034 ┆ 1554 ┆ 2.52 ┆ 3.38 ┆ 2.47 ┆ 3.15 ┆ 60.68 │
│ 2019,2020,2021,2022,2023,2024 ┆ DET ┆ all ┆ 455 ┆ 27613.32 ┆ 1203.930054 ┆ 1241 ┆ 1402.47998 ┆ 1550 ┆ 2.7 ┆ 3.37 ┆ 2.62 ┆ 3.05 ┆ 60.69 │
│ 2019,2020,2021,2022,2023,2024 ┆ OTT ┆ all ┆ 455 ┆ 27577.82 ┆ 1350.400024 ┆ 1320 ┆ 1371.02002 ┆ 1474 ┆ 2.87 ┆ 3.21 ┆ 2.94 ┆ 2.98 ┆ 60.61 │
│ 2019,2020,2021,2022,2023,2024 ┆ MIN ┆ all ┆ 453 ┆ 27557.93 ┆ 1292.089966 ┆ 1415 ┆ 1238.73999 ┆ 1340 ┆ 3.08 ┆ 2.92 ┆ 2.81 ┆ 2.7 ┆ 60.83 │
│ 2019,2020,2021,2022,2023,2024 ┆ PIT ┆ all ┆ 453 ┆ 27506.68 ┆ 1406.329956 ┆ 1439 ┆ 1307.709961 ┆ 1371 ┆ 3.14 ┆ 2.99 ┆ 3.07 ┆ 2.85 ┆ 60.72 │
│ 2019,2020,2021,2022,2023,2024 ┆ BUF ┆ all ┆ 453 ┆ 27470.68 ┆ 1252.420044 ┆ 1358 ┆ 1394.089966 ┆ 1525 ┆ 2.97 ┆ 3.33 ┆ 2.74 ┆ 3.04 ┆ 60.64 │
│ 2019,2020,2021,2022,2023,2024 ┆ MTL ┆ all ┆ 455 ┆ 27660.0 ┆ 1233.48999 ┆ 1286 ┆ 1458.719971 ┆ 1549 ┆ 2.79 ┆ 3.36 ┆ 2.68 ┆ 3.16 ┆ 60.79 │
│ 2019,2020,2021,2022,2023,2024 ┆ EDM ┆ all ┆ 455 ┆ 27543.68 ┆ 1499.869995 ┆ 1567 ┆ 1258.290039 ┆ 1346 ┆ 3.41 ┆ 2.93 ┆ 3.27 ┆ 2.74 ┆ 60.54 │
│ 2019,2020,2021,2022,2023,2024 ┆ WSH ┆ all ┆ 453 ┆ 27534.72 ┆ 1316.75 ┆ 1449 ┆ 1288.650024 ┆ 1357 ┆ 3.16 ┆ 2.96 ┆ 2.87 ┆ 2.81 ┆ 60.78 │
│ 2019,2020,2021,2022,2023,2024 ┆ CBJ ┆ all ┆ 454 ┆ 27579.42 ┆ 1206.550049 ┆ 1286 ┆ 1423.719971 ┆ 1558 ┆ 2.8 ┆ 3.39 ┆ 2.62 ┆ 3.1 ┆ 60.75 │
│ 2019,2020,2021,2022,2023,2024 ┆ CHI ┆ all ┆ 454 ┆ 27549.48 ┆ 1120.449951 ┆ 1184 ┆ 1402.569946 ┆ 1567 ┆ 2.58 ┆ 3.41 ┆ 2.44 ┆ 3.05 ┆ 60.68 │
│ 2019,2020,2021,2022,2023,2024 ┆ FLA ┆ all ┆ 453 ┆ 27482.93 ┆ 1518.189941 ┆ 1552 ┆ 1292.790039 ┆ 1310 ┆ 3.39 ┆ 2.86 ┆ 3.31 ┆ 2.82 ┆ 60.67 │
│ 2019,2020,2021,2022,2023,2024 ┆ NYR ┆ all ┆ 454 ┆ 27500.93 ┆ 1309.280029 ┆ 1465 ┆ 1309.890015 ┆ 1276 ┆ 3.2 ┆ 2.78 ┆ 2.86 ┆ 2.86 ┆ 60.57 │
│ 2021,2022,2023,2024 ┆ SEA ┆ all ┆ 328 ┆ 19868.17 ┆ 901.97998 ┆ 961 ┆ 940.97998 ┆ 1030 ┆ 2.9 ┆ 3.11 ┆ 2.72 ┆ 2.84 ┆ 60.57 │
│ 2019,2020,2021,2022,2023,2024 ┆ WPG ┆ all ┆ 455 ┆ 27521.73 ┆ 1347.530029 ┆ 1413 ┆ 1339.189941 ┆ 1218 ┆ 3.08 ┆ 2.66 ┆ 2.94 ┆ 2.92 ┆ 60.49 │
│ 2019,2020,2021,2022,2023,2024 ┆ COL ┆ all ┆ 454 ┆ 27520.2 ┆ 1411.180054 ┆ 1590 ┆ 1227.48999 ┆ 1259 ┆ 3.47 ┆ 2.74 ┆ 3.08 ┆ 2.68 ┆ 60.62 │
│ 2019,2020,2021,2022,2023,2024 ┆ STL ┆ all ┆ 455 ┆ 27588.88 ┆ 1224.920044 ┆ 1440 ┆ 1327.410034 ┆ 1372 ┆ 3.13 ┆ 2.98 ┆ 2.66 ┆ 2.89 ┆ 60.63 │
│ 2019,2020,2021,2022,2023,2024 ┆ NJD ┆ all ┆ 453 ┆ 27486.77 ┆ 1372.27002 ┆ 1368 ┆ 1315.619995 ┆ 1438 ┆ 2.99 ┆ 3.14 ┆ 3.0 ┆ 2.87 ┆ 60.68 │
│ 2019,2020,2021,2022,2023,2024 ┆ TOR ┆ all ┆ 454 ┆ 27537.9 ┆ 1479.26001 ┆ 1577 ┆ 1294.400024 ┆ 1332 ┆ 3.44 ┆ 2.9 ┆ 3.22 ┆ 2.82 ┆ 60.66 │
│ 2019,2020,2021,2022,2023,2024 ┆ TBL ┆ all ┆ 454 ┆ 27515.25 ┆ 1430.930054 ┆ 1563 ┆ 1306.390015 ┆ 1300 ┆ 3.41 ┆ 2.83 ┆ 3.12 ┆ 2.85 ┆ 60.61 │
│ 2019,2020,2021,2022,2023 ┆ ARI ┆ all ┆ 372 ┆ 22584.72 ┆ 961.919983 ┆ 1025 ┆ 1173.189941 ┆ 1235 ┆ 2.72 ┆ 3.28 ┆ 2.56 ┆ 3.12 ┆ 60.71 │
│ 2019,2020,2021,2022,2023,2024 ┆ SJS ┆ all ┆ 454 ┆ 27546.48 ┆ 1203.199951 ┆ 1158 ┆ 1454.609985 ┆ 1633 ┆ 2.52 ┆ 3.56 ┆ 2.62 ┆ 3.17 ┆ 60.68 │
│ 2019,2020,2021,2022,2023,2024 ┆ VGK ┆ all ┆ 455 ┆ 27630.25 ┆ 1404.969971 ┆ 1480 ┆ 1253.349976 ┆ 1257 ┆ 3.21 ┆ 2.73 ┆ 3.05 ┆ 2.72 ┆ 60.73 │
│ 2024 ┆ UTA ┆ all ┆ 82 ┆ 4994.22 ┆ 261.690002 ┆ 240 ┆ 240.179993 ┆ 247 ┆ 2.88 ┆ 2.97 ┆ 3.14 ┆ 2.89 ┆ 60.91 │
└───────────────────────────────┴──────┴───────────┴─────────────┴──────────┴─────────────┴──────────┴───────────────┴──────────────┴─────────────────┴─────────────────────┴──────────────────┴──────────────────────┴────────────────┘
Working with the data
If you're prefer working with pandas dataframes as opposed to polars ones, you can use the built-in to_pandas() method to make an easy conversion.
>>> import pyhockey
>>> df = pyhockey.skater_summary(team='TOR', season=2024)
>>> type(df)
<class 'polars.dataframe.frame.DataFrame'>
# Use `to_pandas()` to convert the results to a pandas dataframe
>>> df = df.to_pandas()
>>> type(df)
<class 'pandas.core.frame.DataFrame'>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyhockey-0.1.0.tar.gz.
File metadata
- Download URL: pyhockey-0.1.0.tar.gz
- Upload date:
- Size: 44.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fedbf85f7b03c36a1a22efd760924089cea9e1fd36b9b0c45362da002a648fb
|
|
| MD5 |
4cc7753d15764abba4bc7687bd071c5e
|
|
| BLAKE2b-256 |
6125b9d6dbc68a68d8cde6115b4943989d8a9469de59ac55fb80cfcaa3146bf5
|
File details
Details for the file pyhockey-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyhockey-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaede23810a6734512eed3e1e01d383ddc2c52a0dcebf7ae99b1862d77ce62fc
|
|
| MD5 |
478f0ad3e84e2ecacfae82f1cc1a1645
|
|
| BLAKE2b-256 |
5019905f3587e60b98aed659d1411bd392183f7f71031447eeae9e228fc952bf
|