Skip to content

Instantly share code, notes, and snippets.

@nicksherron
Created December 11, 2025 01:56
Show Gist options
  • Select an option

  • Save nicksherron/a73ff63d97aae46ed75bbfdfaa4012ec to your computer and use it in GitHub Desktop.

Select an option

Save nicksherron/a73ff63d97aae46ed75bbfdfaa4012ec to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import pandas as pd
from io import StringIO
"""
To get the CSV data
1. Go to https://www.nba.com/stats/team/1610612743
2. Click on a player to go to their stats page
3. Click on 'Advanced Box Scores' under the 'Profile' dropdown
4. Copy the table data and do
pd.read_clipboard().to_csv('/tmp/player.csv', index=False)
!cat /tmp/player.csv | sd '\n' ';' > /tmp/player_semi.csv
5. Copy the content of /tmp/player_semi.csv into the a variable like below
"""
# Nikola Jokic stats
jokCsv = 'Match Up,W/L,MIN,PTS,FGM,FGA,FG%,3PM,3PA,3P%,FTM,FTA,FT%,OREB,DREB,REB,AST,STL,BLK,TOV,PF,+/-;"Dec 07, 2025 - DEN @ CHA",W,34:50,28,11,16,68.8,4,8,50.0,2,3,66.7,0,9,9,11,1,0,4,2,6;"Dec 05, 2025 - DEN @ ATL",W,35:36,40,13,26,50.0,1,8,12.5,13,15,86.7,3,6,9,8,1,1,2,1,-15;"Dec 03, 2025 - DEN @ IND",W,35:17,24,9,17,52.9,1,4,25.0,5,5,100.0,1,7,8,13,0,1,4,2,26;"Dec 01, 2025 - DEN vs. DAL",L,37:00,29,10,24,41.7,3,10,30.0,6,7,85.7,4,16,20,13,1,2,2,2,-1;"Nov 29, 2025 - DEN @ PHX",W,31:24,26,7,7,100.0,2,2,100.0,10,11,90.9,3,6,9,10,0,0,5,1,16;"Nov 28, 2025 - DEN vs. SAS",L,36:01,21,7,10,70.0,1,1,100.0,6,8,75.0,2,7,9,10,1,1,4,5,-6;"Nov 24, 2025 - DEN @ MEM",W,33:43,17,5,9,55.6,3,4,75.0,4,5,80.0,1,9,10,16,2,0,3,1,1;"Nov 22, 2025 - DEN vs. SAC",L,36:35,44,16,28,57.1,3,6,50.0,9,10,90.0,7,6,13,7,0,0,2,4,2;"Nov 21, 2025 - DEN @ HOU",W,39:20,34,11,20,55.0,4,8,50.0,8,10,80.0,4,6,10,9,2,2,4,5,4;"Nov 19, 2025 - DEN @ NOP",W,34:26,28,10,18,55.6,2,4,50.0,6,7,85.7,4,7,11,12,0,0,9,6,9;"Nov 17, 2025 - DEN vs. CHI",L,38:38,36,13,27,48.1,1,7,14.3,9,12,75.0,4,14,18,13,1,2,2,2,10;"Nov 15, 2025 - DEN @ MIN",W,37:10,27,8,15,53.3,3,6,50.0,8,8,100.0,3,9,12,11,2,1,6,4,3;"Nov 12, 2025 - DEN @ LAC",W,33:34,55,18,23,78.3,5,6,83.3,14,16,87.5,2,10,12,6,1,1,2,1,28;"Nov 11, 2025 - DEN @ SAC",W,32:47,35,16,19,84.2,1,2,50.0,2,3,66.7,5,10,15,7,2,0,3,3,11;"Nov 08, 2025 - DEN vs. IND",W,31:43,32,10,14,71.4,1,1,100.0,11,12,91.7,5,9,14,14,1,0,8,4,9;"Nov 07, 2025 - DEN vs. GSW",W,28:16,26,12,15,80.0,2,3,66.7,0,0,0.0,2,7,9,9,0,1,1,2,16;"Nov 05, 2025 - DEN vs. MIA",W,36:35,33,12,18,66.7,2,5,40.0,7,8,87.5,5,10,15,16,3,0,3,1,18;"Nov 03, 2025 - DEN vs. SAC",W,36:01,34,14,22,63.6,4,10,40.0,2,3,66.7,2,5,7,14,4,2,1,3,18;"Oct 31, 2025 - DEN @ POR",L,37:03,21,7,10,70.0,2,3,66.7,5,7,71.4,2,12,14,9,1,2,3,1,9;"Oct 29, 2025 - DEN vs. NOP",W,27:33,21,10,15,66.7,1,2,50.0,0,0,0.0,2,10,12,10,2,0,2,4,25;"Oct 27, 2025 - DEN @ MIN",W,36:08,25,9,10,90.0,0,0,0.0,7,7,100.0,6,13,19,10,2,1,3,4,17;"Oct 25, 2025 - DEN vs. PHX",W,32:02,14,5,8,62.5,0,3,0.0,4,4,100.0,1,13,14,15,3,0,5,3,27;"Oct 23, 2025 - DEN @ GSW",L,40:50,21,8,23,34.8,2,13,15.4,3,4,75.0,1,12,13,10,1,1,2,3,-10;'.replace(
";", "\n"
)
# Cam Johnson stats
camCsv = 'Match Up,W/L,MIN,PTS,FGM,FGA,FG%,3PM,3PA,3P%,FTM,FTA,FT%,OREB,DREB,REB,AST,STL,BLK,TOV,PF,+/-;"Dec 07, 2025 - DEN @ CHA",W,38:38,8,2,7,28.6,1,5,20.0,3,4,75.0,1,3,4,3,0,0,0,4,9;"Dec 05, 2025 - DEN @ ATL",W,34:44,16,6,14,42.9,4,9,44.4,0,1,0.0,1,3,4,2,1,1,2,2,15;"Dec 03, 2025 - DEN @ IND",W,33:42,9,3,7,42.9,2,3,66.7,1,2,50.0,1,3,4,4,1,0,1,4,16;"Dec 01, 2025 - DEN vs. DAL",L,36:19,10,3,10,30.0,1,6,16.7,3,4,75.0,0,1,1,2,2,0,1,2,-14;"Nov 29, 2025 - DEN @ PHX",W,34:59,15,5,9,55.6,3,6,50.0,2,2,100.0,0,4,4,4,0,1,3,2,11;"Nov 28, 2025 - DEN vs. SAS",L,37:45,28,10,16,62.5,6,9,66.7,2,2,100.0,2,4,6,1,2,1,3,3,7;"Nov 24, 2025 - DEN @ MEM",W,36:32,18,6,10,60.0,3,4,75.0,3,3,100.0,2,4,6,1,1,0,3,3,4;"Nov 22, 2025 - DEN vs. SAC",L,37:14,20,7,11,63.6,4,7,57.1,2,3,66.7,0,5,5,4,0,1,3,1,3;"Nov 21, 2025 - DEN @ HOU",W,32:13,9,2,6,33.3,1,2,50.0,4,4,100.0,2,3,5,1,1,1,1,3,-3;"Nov 19, 2025 - DEN @ NOP",W,32:28,14,6,8,75.0,1,3,33.3,1,2,50.0,0,3,3,5,1,0,2,2,2;"Nov 17, 2025 - DEN vs. CHI",L,36:55,19,6,12,50.0,5,7,71.4,2,2,100.0,2,2,4,3,0,0,0,0,13;"Nov 12, 2025 - DEN @ LAC",W,7:50,2,1,3,33.3,0,1,0.0,0,0,0.0,2,1,3,0,0,0,0,1,-1;"Nov 11, 2025 - DEN @ SAC",W,22:17,5,2,6,33.3,0,3,0.0,1,2,50.0,1,1,2,2,0,0,1,1,12;"Nov 08, 2025 - DEN vs. IND",W,27:15,12,5,11,45.5,0,3,0.0,2,2,100.0,0,2,2,4,2,0,0,2,1;"Nov 07, 2025 - DEN vs. GSW",W,25:09,0,0,3,0.0,0,2,0.0,0,0,0.0,0,1,1,4,1,0,0,1,25;"Nov 05, 2025 - DEN vs. MIA",W,23:02,9,3,10,30.0,2,5,40.0,1,2,50.0,1,1,2,1,0,0,0,3,8;"Nov 03, 2025 - DEN vs. SAC",W,29:49,10,5,12,41.7,0,5,0.0,0,0,0.0,1,2,3,2,1,0,1,2,11;"Oct 31, 2025 - DEN @ POR",L,31:06,9,3,7,42.9,1,3,33.3,2,2,100.0,0,6,6,1,0,1,0,2,14;"Oct 29, 2025 - DEN vs. NOP",W,27:15,7,2,4,50.0,2,4,50.0,1,2,50.0,0,1,1,1,0,0,1,2,22;"Oct 27, 2025 - DEN @ MIN",W,18:56,5,2,5,40.0,1,3,33.3,0,0,0.0,0,2,2,2,0,0,2,5,-14;"Oct 25, 2025 - DEN vs. PHX",W,24:39,15,4,9,44.4,1,3,33.3,6,6,100.0,2,2,4,1,1,0,0,3,15;"Oct 23, 2025 - DEN @ GSW",L,32:01,5,2,8,25.0,1,6,16.7,0,0,0.0,0,3,3,2,1,0,1,3,-17;'.replace(
";", "\n"
)
jok = pd.read_csv(StringIO(jokCsv))
cam = pd.read_csv(StringIO(camCsv))
print("Cam Johnson Stats:\n")
ranges = [5, 10, 15, 20]
for r in ranges:
print(f"\nLast {r} Games:")
print(
cam.head(r)
.agg(
{
"FGA": ["average", "sum", "min", "max"],
"FGM": ["average", "sum", "min", "max"],
"FG%": ["average", "min", "max"],
"3PA": ["average", "sum", "min", "max"],
"3PM": ["average", "sum", "min", "max"],
"3P%": ["average", "min", "max"],
"PTS": ["average", "sum", "min", "max"],
}
)
.T.to_string(float_format="{:.2f}".format)
)
print("\n\n\nNikola Jokic Stats:\n")
for r in ranges:
print(f"\nLast {r} Games:")
print(
jok.head(r)
.agg(
{
"FGA": ["average", "sum", "min", "max"],
"FGM": ["average", "sum", "min", "max"],
"FG%": ["average", "min", "max"],
"3PA": ["average", "sum", "min", "max"],
"3PM": ["average", "sum", "min", "max"],
"3P%": ["average", "min", "max"],
"PTS": ["average", "sum", "min", "max"],
}
)
.T.to_string(float_format="{:.2f}".format)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment