import pandas as pd
df = pd.read_csv("2021dataset.csv")
pd.set_option('display.max_rows', None)
for col in ['switch', 'line', 'slowmo', 'ig', 'replayed', 'slam', 'NY']:
df[col] = pd.to_numeric(df[col], errors='coerce').fillna(0)
for col in ['trick', 'obstacle', 'obstacledetail', 'location', 'notes']:
df[col] = df[col].str.lower()
#df
# total num_tricks
num_tricks = pd.DataFrame(df.groupby('week')['rank'].max()).reset_index()
num_tricks.columns = ['week', 'num_tricks']
# total slowmo clips
num_slowmo = pd.DataFrame(df.groupby('week').sum()['slowmo']).reset_index()
num_slowmo.columns = ['week', 'num_slowmo']
# total slam clips
num_slam = pd.DataFrame(df.groupby('week').sum()['slam']).reset_index()
num_slam.columns = ['week', 'num_slam']
# total NY clips
num_NY = pd.DataFrame(df.groupby('week').sum()['NY']).reset_index()
num_NY.columns = ['week', 'num_NY']
# total switch/nollie tricks
num_switch = pd.DataFrame(df.groupby('week').sum()['switch']).reset_index()
num_switch.columns = ['week', 'num_switch']
# total tricks part of line
num_line = pd.DataFrame(df.groupby('week').sum()['line']).reset_index()
num_line.columns = ['week', 'num_line']
# total IG tricks
num_ig = pd.DataFrame(df.groupby('week').sum()['ig']).reset_index()
num_ig.columns = ['week', 'num_ig']
# total replayed tricks
num_replayed = pd.DataFrame(df.groupby('week').sum()['replayed']).reset_index()
num_replayed.columns = ['week', 'num_replayed']
# total fs tricks
num_fs = pd.DataFrame(df[['trick', 'week', 'obstacle']].drop_duplicates().groupby(['week'])['trick'].apply(lambda x: x[x.str.contains('fs ')].count())).reset_index()
num_fs.columns = ['week', 'num_fs']
# total bs tricks
num_bs = pd.DataFrame(df[['trick', 'week', 'obstacle']].drop_duplicates().groupby(['week'])['trick'].apply(lambda x: x[x.str.contains('bs ')].count())).reset_index()
num_bs.columns = ['week', 'num_bs']
df_stats = df.merge(num_tricks).merge(num_slowmo).merge(num_slam).merge(num_NY).merge(num_switch).merge(num_line).merge(num_ig).merge(num_replayed).merge(num_fs).merge(num_bs)
weeks = df.groupby('week')
# percent stair
perc_stair = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='stairs'])) / len(x)))
perc_stair = perc_stair.reset_index()
perc_stair.columns = ['week', 'perc_stair']
# print("Stairs: {}".format(sum(perc_stair['perc_stair'])/perc_stair['week'].max()))
# percent gap
perc_gap = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='gap'])) / len(x)))
perc_gap = perc_gap.reset_index()
perc_gap.columns = ['week', 'perc_gap']
# percent ledge
perc_ledge = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='ledge'])) / len(x)))
perc_ledge = perc_ledge.reset_index()
perc_ledge.columns = ['week', 'perc_ledge']
# percent manual
perc_manual = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='pad']) + len(x[x=='manual']) ) / len(x)))
perc_manual = perc_manual.reset_index()
perc_manual.columns = ['week', 'perc_manual']
# percent transition
perc_transition = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='transition'])) / len(x)))
perc_transition = perc_transition.reset_index()
perc_transition.columns = ['week', 'perc_transition']
# percent flat
perc_flat = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='flat'])) / len(x)))
perc_flat = perc_flat.reset_index()
perc_flat.columns = ['week', 'perc_flat']
# percent hubba
perc_hubba = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='hubba'])) / len(x)))
perc_hubba = perc_hubba.reset_index()
perc_hubba.columns = ['week', 'perc_hubba']
# percent handrail
perc_handrail = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x==r'handrail'])) / len(x)))
perc_handrail = perc_handrail.reset_index()
perc_handrail.columns = ['week', 'perc_handrail']
# percent curb
perc_curb = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='curb'])) / len(x)))
perc_curb = perc_curb.reset_index()
perc_curb.columns = ['week', 'perc_curb']
# percent Wall
perc_wall = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='wall'])) / len(x)))
perc_wall = perc_wall.reset_index()
perc_wall.columns = ['week', 'perc_wall']
# percent Flatrail
perc_rail = pd.DataFrame(weeks['obstacle'].agg(lambda x: (len(x[x=='flat rail'])) / len(x)))
perc_rail = perc_rail.reset_index()
perc_rail.columns = ['week', 'perc_rail']
new_df = df
for s in [num_tricks, num_slowmo, num_slam, num_NY, num_switch, num_fs, num_bs, num_replayed, num_ig, num_line,
perc_stair, perc_gap, perc_ledge, perc_manual, perc_transition, perc_flat, perc_hubba,
perc_rail, perc_handrail, perc_curb, perc_wall]:
new_df = new_df.merge(s)
cols_to_keep = ['week', 'num_tricks', 'num_slowmo', 'num_slam', 'num_NY', 'num_switch',
'num_fs', 'num_bs', 'num_replayed', 'num_ig', 'num_line',
'perc_stair', 'perc_gap', 'perc_ledge', 'perc_manual', 'perc_transition',
'perc_hubba', 'perc_rail', 'perc_handrail', 'perc_curb', 'perc_flat', 'perc_wall']
stats_df = new_df[cols_to_keep].drop_duplicates().reset_index().drop(columns='index')
stats_df['perc_slowmo'] = stats_df.apply(lambda x: x['num_slowmo'] / x['num_tricks'], axis=1)
stats_df['perc_switch'] = stats_df.apply(lambda x: x['num_switch'] / x['num_tricks'], axis=1)
stats_df['perc_slam'] = stats_df.apply(lambda x: x['num_slam'] / x['num_tricks'], axis=1)
stats_df['perc_NY'] = stats_df.apply(lambda x: x['num_NY'] / x['num_tricks'], axis=1)
stats_df['perc_fs'] = stats_df.apply(lambda x: x['num_fs'] / x['num_tricks'], axis=1)
stats_df['perc_bs'] = stats_df.apply(lambda x: x['num_bs'] / x['num_tricks'], axis=1)
stats_df['perc_replayed'] = stats_df.apply(lambda x: x['num_replayed'] / x['num_tricks'], axis=1)
stats_df['perc_ig'] = stats_df.apply(lambda x: x['num_ig'] / x['num_tricks'], axis=1)
stats_df['perc_line'] = stats_df.apply(lambda x: x['num_line'] / x['num_tricks'], axis=1)
stats_df = stats_df.drop(columns=['num_slowmo', 'num_switch', 'num_slam', 'num_NY',
'num_fs', 'num_bs', 'num_replayed', 'num_ig', 'num_line'])
for col in ['perc_stair', 'perc_gap', 'perc_ledge', 'perc_manual', 'perc_transition',
'perc_hubba', 'perc_rail', 'perc_handrail', 'perc_curb', 'perc_flat',
'perc_slowmo', 'perc_switch', 'perc_slam', 'perc_NY', 'perc_fs', 'perc_bs',
'perc_wall', 'perc_replayed', 'perc_ig', 'perc_line']:
stats_df[col] = round(stats_df[col] * 100)
average_percs = round(stats_df.sum()/stats_df['week'].max(), 1)
#REGEX FUNCTIONS
def skatercount(regex):
return df[df['skater'].str.contains(regex, na=False)].groupby('skater')['skater']
def trickgroup(regex):
return df[df['trick'].str.contains(regex, na=False)].groupby('trick')['trick']
def spotfind(regex):
return df[df['location'].str.contains(regex, na=False)].groupby('location')['location']
def obstaclecount1(regex):
return df[df['obstacle'].str.contains(regex, na=False)].groupby('obstacle')['obstacle']
def obstacledetailcount(regex):
return df[df['obstacledetail'].str.contains(regex, na=False)].groupby('obstacledetail')['obstacledetail']
def noted(regex):
return df[df['notes'].str.contains(regex, na=False)].groupby('notes')['notes']
average_percs
week 25.5 num_tricks 10.0 perc_stair 8.6 perc_gap 17.8 perc_ledge 33.6 perc_manual 7.4 perc_transition 2.4 perc_hubba 5.0 perc_rail 5.4 perc_handrail 5.2 perc_curb 1.6 perc_flat 6.8 perc_wall 4.6 perc_slowmo 32.6 perc_switch 19.0 perc_slam 5.6 perc_NY 14.4 perc_fs 32.8 perc_bs 46.6 perc_replayed 39.0 perc_ig 17.2 perc_line 32.0 dtype: float64
for s in [num_tricks, num_slowmo, num_switch, num_fs, num_bs, num_replayed, num_ig, num_line]:
num_df = new_df.merge(s)
num_df = num_df[['num_slowmo', 'num_switch', 'num_slam', 'num_NY', 'num_replayed',
'num_ig', 'num_line']].drop_duplicates().reset_index().drop(columns='index')
num_df.sum()
num_slowmo 163.0 num_switch 95.0 num_slam 28.0 num_NY 72.0 num_replayed 195.0 num_ig 86.0 num_line 160.0 dtype: float64
total_points = pd.DataFrame(df.groupby('skater')['points'].sum()).reset_index()
total_points.columns = ['skater', 'total_points']
top_points = total_points.sort_values(['total_points'], ascending=False)
top_points.head(25)
# top_points.head(35).to_csv('/Users/peteglover/Desktop/QS_points.csv')
skater | total_points | |
---|---|---|
366 | Tyshawn Jones | 56 |
230 | Kyle Wilson | 31 |
254 | Mark Suciu | 30 |
22 | Antonio Durao | 29 |
367 | Victor Campillo | 27 |
241 | Louie Lopez | 25 |
106 | Eetu Toropainen | 24 |
186 | John Shanahan | 24 |
67 | Chris Athans | 24 |
92 | Deedz | 21 |
66 | Chima Ferguson | 20 |
166 | Jacopo Carozzi | 20 |
109 | Elijah Odom | 19 |
189 | Jordan Queijo | 19 |
48 | Brayan Albarenga | 19 |
60 | Carl Aikens | 18 |
184 | John Dilo | 18 |
156 | Ishod Wair | 18 |
51 | Brian O’Dwyer | 17 |
262 | Max Palmer | 17 |
54 | Brian Reid | 17 |
353 | Tom Knox | 17 |
79 | Cyrus Bennett | 16 |
378 | Yuto Horigome | 16 |
313 | Rowan Davis | 16 |
appearances = skatercount(r"").count().sort_values(ascending=False)
appearances.head(25)
skater Tyshawn Jones 6 Victor Campillo 6 John Shanahan 5 Mark Suciu 5 Kyle Wilson 4 Antonio Durao 4 Bear Myles 4 Ishod Wair 4 Chris Athans 4 Deedz 4 Louie Lopez 4 Elijah Odom 3 Rowan Davis 3 Brayan Albarenga 3 Heitor Da Silva 3 Max Palmer 3 Eetu Toropainen 3 Jordan Queijo 3 Dustin Henry 3 Jahmir Brown 3 Brian Reid 3 Maite Steenhoudt 3 Karim Callender 2 Olli Lilja 2 Patrick Zentgraf 2 Name: skater, dtype: int64
yes = [i for i in appearances.values if i >= 2]
len(yes)
79
print("Unique skaters in #QSTop10 2021: {}".format(len(skatercount(r""))))
Unique skaters in #QSTop10 2021: 382
total_tricks = num_tricks['num_tricks'].sum()
total_tricks
500
unique_tricks = []
for i in df['trick']:
if i not in unique_tricks:
unique_tricks.append(i)
len(unique_tricks)
362
print('Percentage Tricks that are Unique: {}'.format(round(len(unique_tricks)/total_tricks*100, 1)))
Percentage Tricks that are Unique: 72.4
toptricks = trickgroup(r"").count().sort_values(ascending=False)
toptricks.head(25)
trick kickflip 16 360flip 15 ollie 10 fs kickflip 6 hardflip 6 fs 50-50 6 switch heelflip 5 bs wallride 5 bs tailslide 5 bs nosebluntslide 5 bs kickflip 5 switch 360flip 5 switch kickflip 4 bs 50-50 4 fs nosegrind 3 bs lipslide 3 switch fs kickflip 3 nose manual 3 nollie bs heelflip 3 fs lipslide 3 bs 180 3 bs 5-0 3 bs boardslide 3 bs 360 ollie 3 nollie heelflip 3 Name: trick, dtype: int64
yes1 = [i for i in toptricks.values if i >= 2] #i == number of occurances
# tricks happened two or more times
len(yes1)
57
trickfind = trickgroup(r"manual").count().sort_values(ascending=False)
trickfind.head(20)
trick nose manual 3 switch ollie to fakie manual to fakie impossible 1 bs shove to nose manual to fs nosegrind to bs 180 1 fs 180 to fakie manual to fakie varial heelflip 1 fakie ollie to fakie manual 1 fakie manual 1 bs smith to manual to bs 180 1 bs smith to bs 180 to switch manual to switch fs 180 1 bs shove to nose manual to nollie varial flip 1 bs shove to nose manual to nollie front shove 1 bs shove to manual to bs 180 1 half cab to nose manual to nollie bs 180 to fakie manual 1 bs noseslide to nose manual to nollie fs shove 1 bs kickflip to switch manual to switch fs shove 1 bs kickflip to switch manual 1 bs heelflip to fakie manual 1 bs 180 to fakie manual to fakie bs 360 1 bs 180 to fakie manual to bs caballerial to switch manual to switch fs 180 1 bs 180 to fakie manual 1 360flip to nose manual 1 Name: trick, dtype: int64
yes2 = [i for i in trickfind.values]
sum(yes2)
43
obstaclecount1(r"").count().sort_values(ascending=False)
obstacle ledge 168 gap 89 stairs 43 pad 37 flat 34 flat rail 27 handrail 26 hubba 25 wall 23 transition 12 curb 8 bank 5 hip 3 Name: obstacle, dtype: int64
over = obstacledetailcount(r"").count().sort_values(ascending=False) #for "over" obstacles
over
obstacledetail out ledge 20 into bank 20 over rail 12 curved ledge 9 over rail into bank 7 gap to ledge 7 up stairs 6 curved rail 6 flat gap 6 ledge to ledge 5 ledge to gap 5 banked ledge 5 over barrier 5 over trash can 5 bump over bar 4 bank to ledge 4 over bench 4 street gap 3 pad to stairs 3 big drop 3 bump to gap 3 street quarter 3 gap to curb 3 wall to gap 3 ledge to pad 2 over pad 2 ledge to wall 2 ledge to drop 2 ledge to bank 2 launch ramp 2 handrail to ledge 2 gap to wall 2 gap to hubba 2 concrete park 2 bank to wall 2 gap to ledge into bank 2 2 up hubba 2 pad to ledge 2 rail to gap 2 uprail 2 wallie to gap 2 handrail to handrail 1 fly out 1 curved up ledge 1 drop in 1 flat bank to curb 1 up ledge 1 flat rail to handrail 1 flat to ledge 1 gap 1 stairs to street gap 1 gap in gap out 1 wall down stairs 1 transition to wall 1 street pole 1 street hip 1 stairs to pad to wall 1 gap to pad 1 pad to drop 1 curved hubba 1 hubba to pad to stairs 1 curved bench 1 bank to rail 1 wall to ledge 1 wall to hubba 1 bench to rail to bench 1 wall to gap to rail to bank 1 bowl 1 wall to curb to bank 1 bump to bar 1 bump to bump 1 bump to car 1 wall to banked ledge 1 bump to ledge 1 bump to pad 1 channel 1 wall gap wall 1 curb cut 1 curb to ledge 1 hubba to curb 1 sphere 1 huge gap 1 over chain 1 on tree 1 onto ledge 1 onto loading dock 1 pool 1 pole to flat rail to into bank 1 pad to pad 1 over bin 1 over car hood 1 over gate 1 pad to bank 1 over hydrant 1 over ledge 1 over like 20 boards 1 pad to gap to bank 1 pad to gap 1 over rail to ledge 1 pad to flat 1 over wall 1 on hydrant 1 off egg 1 miniramp 1 middle rail 1 into fountain 1 into halfpipe 1 kicker 1 kicker to kicker 1 launch 1 ride on 1 launch to ledge 1 ledge into bank 1 rail to rail to rail 1 ledge to curb 1 rail to ledge 1 ledge to flat rail 1 ledge to hubba 1 rail into bank 1 quarter to wall 1 ledge to pad to gap 1 wallride down stairs 1 wavy hubba 1 Name: obstacledetail, dtype: int64
sum(i for i in over)
269
details = obstacledetailcount(r"curve").count().sort_values(ascending=False) #enter whatever detail to track
details.head(40)
obstacledetail curved ledge 9 curved rail 6 curved up ledge 1 curved hubba 1 curved bench 1 Name: obstacledetail, dtype: int64
sum(i for i in details)
18
byskater = df.groupby('skater').sum()
byskater = byskater.sort_values('ig', ascending=False) # sorts by column HERE
byskater = byskater.drop(columns=['week', 'rank', 'points'])
byskater.head(10)
line | switch | slowmo | ig | replayed | slam | NY | |
---|---|---|---|---|---|---|---|
skater | |||||||
Tyshawn Jones | 3.0 | 3.0 | 2.0 | 4.0 | 2.0 | 1.0 | 3.0 |
Deedz | 0.0 | 0.0 | 0.0 | 3.0 | 0.0 | 1.0 | 0.0 |
John Shanahan | 2.0 | 0.0 | 0.0 | 2.0 | 1.0 | 0.0 | 3.0 |
Carlos Ribeiro | 1.0 | 2.0 | 0.0 | 2.0 | 1.0 | 0.0 | 0.0 |
Ville Wester | 1.0 | 0.0 | 0.0 | 2.0 | 2.0 | 0.0 | 0.0 |
Bear Myles | 3.0 | 0.0 | 0.0 | 2.0 | 1.0 | 0.0 | 0.0 |
Alexis Lacroix | 0.0 | 1.0 | 1.0 | 2.0 | 1.0 | 0.0 | 0.0 |
Casper Brooker | 0.0 | 0.0 | 0.0 | 2.0 | 0.0 | 0.0 | 0.0 |
Jahmir Brown | 1.0 | 2.0 | 1.0 | 2.0 | 1.0 | 0.0 | 0.0 |
Karsten Kleppan | 1.0 | 0.0 | 0.0 | 2.0 | 0.0 | 0.0 | 1.0 |
byweek = df.groupby('week').sum()
byweek = byweek.sort_values('line', ascending=False) # sorts by column, change ascending to get lowest
byweek = byweek.drop(columns=['rank', 'points'])
byweek.head(10)
line | switch | slowmo | ig | replayed | slam | NY | |
---|---|---|---|---|---|---|---|
week | |||||||
26 | 7.0 | 1.0 | 2.0 | 1.0 | 2.0 | 1.0 | 0.0 |
22 | 7.0 | 4.0 | 2.0 | 2.0 | 4.0 | 0.0 | 2.0 |
4 | 6.0 | 1.0 | 5.0 | 0.0 | 5.0 | 0.0 | 1.0 |
10 | 5.0 | 5.0 | 1.0 | 2.0 | 4.0 | 0.0 | 0.0 |
36 | 5.0 | 2.0 | 2.0 | 0.0 | 5.0 | 0.0 | 0.0 |
44 | 5.0 | 2.0 | 3.0 | 1.0 | 3.0 | 0.0 | 1.0 |
21 | 5.0 | 2.0 | 4.0 | 1.0 | 5.0 | 0.0 | 0.0 |
18 | 5.0 | 1.0 | 4.0 | 0.0 | 5.0 | 0.0 | 1.0 |
11 | 5.0 | 0.0 | 5.0 | 6.0 | 3.0 | 0.0 | 0.0 |
40 | 5.0 | 4.0 | 2.0 | 3.0 | 3.0 | 0.0 | 4.0 |
spotfind(r"").count().sort_values(ascending=False)
location sf hills 8 milano centrale 8 museum of natural history 5 tompkins tf 5 flushing fountain 5 outdoor park 4 muni 4 outdoor skatepark 3 pier 7 3 max palmer park 3 south bank 3 dirt ride 2 pyramid ledges 2 la city hall 2 indoor skatepark 2 outdoor tf 2 eggs boston 2 tekashi ten 2 hotel de ville 2 times square 2 zuccoti 1 construction debris 1 columbus park 1 dime glory 2018 1 con ed banks 1 central park? 1 clipper 1 citi field benches 1 chicago ledges 1 burnside 1 bobcat 1 blubba 1 berlin polish spot 1 barcelona sants 1 afro banks 1 abandoned waterpark 1 fl triangle 1 la hill gap 1 hollywood high 1 on ice 1 the nipple 1 sydney 1 stalin plaza 1 sombrero 1 round and round 1 pulaski park 1 pulaski 1 ny hubba to ledge thing 1 in a fountain 1 magic five pdx 1 lispenard step to skrell 1 ledge over grate 1 le dome 1 la brick volcano 1 jfk 1 jarmers 1 16th st. bart sf 1 Name: location, dtype: int64
noted(r"").count().sort_values(ascending=False)
notes crazy obstacle 27 triple replay 21 quick footed 18 woman 13 combo 13 5 trick line 12 quadruple replay 3 6 trick line 3 90 degree kink 2 polejam 2 aka bs silas grind 1 9 trick line 1 7 nollie heelflips line 1 incorrect name, corrected 1 cph open 1 dipped 1 double grind 1 double lines for #1 1 double triple replay 1 iconic switch fs heelflip and fs heelflip back to back 1 in memoriam 1 in rain 1 inside skateshop 1 inside 1 real street part 1 vert ramp 1 triple replay & 6 trick line 1 through the corner 1 shorts - no shirt 1 self filmed 1 rewound 1 over 3 barrels 1 very fast 1 on tree trunk 1 on dumpster 1 ny? 1 near hangup 1 misnamed - 2 in one week 1 keyhole 1 4 hardflip line 1 Name: notes, dtype: int64
names = skatercount(r"^").count()
names.sort_index(ascending=True)
skater AVE 1 Aaron Loreth 2 Adam Zhu 1 Agata Halikowska 1 Aidan Olmstead 1 Aiden Chabiron 1 Akobi Williams 1 Al Hodgson 1 Aldana Bertran 1 Alex Berggren 1 Alex Tennison 1 Alex Tsagka 1 Alexander Hatfield 1 Alexey Krasniy 1 Alexis Lacroix 2 Alexis Ramirez 1 Alexis Sablone 1 Amin Sharif 1 Andre Beverley 1 Andrea Dupree 1 Anthony Gordon 1 Antonio Aiello 1 Antonio Durao 4 Aron Moloney 1 Athen McCrary 1 Austin Heilman 1 Austin Kanfoush 1 Austyn Gilette 1 Avi Malina 1 Axel Berggren 2 Axel Lindquist 1 Ayahiro Uratsuka 2 Bastien Salabanzi 1 Bear Myles 4 Beatrice Domond 1 Ben Blundell 1 Ben Kadow 1 Ben Lawrie 1 Ben Samuels 1 Billy Lukins 1 Billy McFeely 2 Bjarne Tjotta 1 Blake Carpenter 1 Bobby DeKeyzer 2 Bobby Worrest 1 Brad Cromer 1 Braden Hoban 1 Brandon Westgate 1 Brayan Albarenga 3 Breana Geering 1 Brian Gonterman 1 Brian O’Dwyer 2 Brian Panebianco 1 Brian Powderly 1 Brian Reid 3 Brian Scherer 1 Caleb Barnett 1 Caleb McNeely 1 Caleb Yuan 1 Cam Barr 1 Carl Aikens 2 Carlos Ribeiro 2 Casper Brooker 2 Charlie Birch 2 Charlie Cassidy 1 Charlie Munro 2 Chima Ferguson 2 Chris Athans 4 Chris Milic 1 Chris Oliver 1 Christian Henry 1 Cody Chapman 1 Coles Bailey 1 Connor Kammerer 1 Connor Noll 1 Conor Prunty 1 Corey Glick 2 Cruz Mendez 1 Cuz Panebianco 1 Cyrus Bennett 2 Dakota Overbaugh 1 Dane Barker 1 Daniel Kim 1 Daniel Ledermann 1 Danny Brady 1 Darius Trabalza 1 Dashawn Jordan 1 Dave Engerer 1 David Gonzales 1 David Jakinda 1 David Reyes 1 Davis Sarvey 1 Deedz 4 Derek Thor 1 Deric Esparza 1 Dick Rizzo 2 Diego Todd 2 Digby Luxton 1 Dom Henry 1 Drake Johnson 1 Dubann Machuca 1 Dustin Eggeling 1 Dustin Henry 3 Dylan Clark 1 Dylan Witkin 1 Eddie Cernicky 2 Eetu Toropainen 3 Efron 1 Elias Kitt 1 Elijah Odom 3 Elrido Boccacci 1 Emmanuel Guzman 1 Enrique Lorenzo 1 Eppu Vatanen 1 Eric Clark 1 Etienne Gagne 1 Evan Smith 1 Evan Wasser 1 Evon Martinez 1 Fabiana Delfino 1 Felipe Nunes 1 Figgy 1 Flo Mirtain 1 Frankie Decker 1 Frankie Spears 1 Fred Antigene 1 Fred Plocque Santos 1 Gabriel Bjorsvik 1 Gabriel Fortunado 1 Garett Young 1 Gauthier Rouger 1 Genesis Evans 1 Gilbert Crockett 1 Giorgi Balkhamishvili 1 Glen Fox 1 Grady Smith 1 Grant Taylor 1 Gunes Özdogan 1 Gus Gordon 1 Guy Mariano 1 Harry Lintell 2 Hart Pullman 1 Heitor Da Silva 3 Henry Fischer 1 Henry Gartland 1 Herbert Brown 1 Herman Stene 2 Hjalte Halberg 1 Hosea Peeters 1 Hoshito Tamura 1 Hugo Balek 1 Hugo Boserup 2 Hugo Corbin 2 Hyun Kummer 1 Ike Fromme 1 Ish Cepeda 1 Ishod Wair 4 Isn Cepeda 1 Issey Kumatani 1 JP Villa 1 Jaakko Ojanen 1 Jace Detomasso 1 Jack Bartoluccii 1 Jack Kirk 1 Jack Olsen 1 Jack O’Grady 1 Jacopo Carozzi 2 Jahmir Brown 3 Jake Anderson 1 Jake Keenan 1 Jake Sanso 2 Jake Wooten 1 Jamal Smith 1 Jamie Foy 1 Jan Henrik Kongstein 1 Jason Nam 1 Jay Richards 2 Jaïr Gravenberch 1 Jeremy Murray 1 Jesse Boudreau 1 Jirka Hronek 1 Joe Marchese 1 Joey O’Brien 2 Johan Bergljung 1 John Dilo 2 John Gardner 1 John Shanahan 5 Johnny Cumaoglu 1 Jonathan Pierce 1 Jordan Queijo 3 Jordan Trahan 1 Jorge Simoes 1 Joscha Bonez Aicher 1 Josef Scott Jatta 1 Josh Bos 2 Josh Velez 1 Josh Wilson 2 Juan Virues 1 Julian Lewis 1 Junior 1 Justin Anderson 1 Justin Grzechowiak 1 Justin Henry 1 Justin Sommer 1 Kader Sylla 2 Kai Hillebrand 1 Karim Callender 2 Karl Watson 2 Karsten Kleppan 2 Kaue Cossa 1 Keegan McCutchen 1 Keith Denley 1 Kellen James 1 Kelvinas Litvinas 1 Kento Yoshioka 1 Kevin Bilyeu 1 Kevin Braun 1 Kevin Long 1 Kevin Ozcan 1 Kevin Shealy 1 Kevin Taylor 1 Kevin Vietzke 1 Kevin White 1 Kirian Stone 1 Korahn Gayle 1 Kris Brown 1 Kristin Ebeling 1 Kyle McDonald 1 Kyle Nicholson 1 Kyle Walker 1 Kyle Wilson 4 Kyonosuke Yamashita 1 Kyota Umeki 1 Layth Sami 1 Leo Cholet 1 Leo Gutman 1 Leon Chapdelaine 1 Leonardo Favaro 1 Liam McCabe 1 Lilian Fev 1 Logan Da Silva Ortiz 1 Louie Lopez 4 Lucas Languasco 1 Lucas Puig 2 Lucien Clarke 2 Lucien Genand 2 Lukas Bigun 1 Madars Apse 1 Magnus Bordewick 1 Maikol Morales 1 Maite Steenhoudt 3 Marek Zaprazny 1 Mark Del Negro 1 Mark Humienik 2 Mark Suciu 5 Martino Cattaneo 2 Mason Coletti 2 Mason Silva 1 Matt Gottwig 1 Matt Militano 1 Mattia Turco 1 Maurio McCoy 1 Max Palmer 3 Max Van Arnem 1 Max Wasungu 2 Max Wheeler 1 Mecca Jihad Mshaka-Morris 1 Mika Germond 1 Mike Anderson 1 Mikey Payne 1 Mikey Santillan 1 Mitchel Wilson 1 Myles Underwood 1 Myquel Haddox 1 Mátyás Ricsi 1 Na-kel Smith 1 Nassim Lachhab 1 Neil Herrick 1 Nelly Morville 1 Nick Michel 1 Nick Rainey 1 Nick Stansfield 1 Nik Stain 2 Nika Washington 2 Noah Lora 1 Noah Mehieu 1 Nora Vasconcellos 1 Oliver Durou 1 Olli Lilja 2 Oski 1 O’Connor Nelson 1 Patrick Praman 1 Patrick Rogalski 1 Patrick Zentgraf 2 Paul Rodriguez 1 Pedro Attenborough 1 Pedro Delfino 1 Pedro Roseiro 1 Quentin Boillon 2 Rahzel 1 Reece Knobloch 1 Reese Barton 1 Rezza Honarvar 1 Riley Boland 1 Rinku Konishi 2 Rio Morishige 1 Rob Gonyon 1 Rob Maatman 2 Rob Taro 1 Roman Lisivka 2 Roman Pabich 1 Ron Parker 1 Rory Milanes 1 Rowan Davis 3 Ruben Planque 1 Ruben Spelta 1 Ryan Thompson 1 Ryan Townley 1 Salar Kooshki 1 Samuel Norgren 1 Santino Gagliarducci 1 Sean Evans 1 Sean Powderly 1 Sebastianaa Vijebeber 1 Seven Strong 1 Shane Farber 1 Shareef Grady 1 Shaun Paul 1 Shintaro Hongo 1 Silas Baxter-Neal 1 Simon Bannerot 1 Simon Hallberg 1 Smiler 1 Spencer Hamilton 1 Stafhon Boca 2 Stailly Wallaf 1 Stepan Bares 1 Stephen Ostrowski 1 TJ Rogers 2 Taizo Mukk 1 Tania Cruz 1 Tanner Burzinski 1 Taylor Nawrocki 1 Tenzin 1 Terrill Jefferson 1 Thierry Gormit 2 Thomas Dritsas 2 Tiago Lemos 1 Tim Janke 1 Tjerk Oosting 2 Tolya Titaev 1 Tom Belot 1 Tom Botwid 1 Tom Knox 2 Tom Penny 1 Tommy Bjork 1 Tony Gomez 1 Tooth 1 Tremaine Glasgow 1 Troy Gipson 2 Trung Nguyen 1 Ty'Rae Carter 1 Tyler Bledsoe 1 Tyler Dietterich 1 Tyler Hannah 1 Tyler Surrey 1 Tyshawn Jones 6 Victor Campillo 6 Ville Wester 2 Vinicius Costa 1 Vova Pavlov 1 Will Marshall 1 Will Mazzari 1 Willem van Dijk 1 Wilton Souza 1 Yaje Popson 1 Yuri Facchini 1 Yuta Ishizuka 1 Yuto Horigome 2 Zach Allen 1 Zach Moore 1 Zane Timpson 1 Name: skater, dtype: int64
len(names)
382