Created
December 11, 2025 01:56
-
-
Save nicksherron/a73ff63d97aae46ed75bbfdfaa4012ec to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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