Huge progress on pitching_stats
This commit is contained in:
parent
b3102201c8
commit
d74ea59d40
146
pitching_stats.csv
Normal file
146
pitching_stats.csv
Normal file
@ -0,0 +1,146 @@
|
||||
pitcher_id,last_name,use_name,key_mlbam,key_retro,key_bbref,key_fangraphs,TBF_vL,TBF_vR,AB_vL,AB_vR,HR_vR,HR_vL,1B_vR,1B_vL,2B_vR,2B_vL,3B_vR,3B_vL,BB_vR,BB_vL,SO_vR,SO_vL,HBP_vR,HBP_vL,IBB_vL,IBB_vR,FB_vL,FB_vR,GB_vL,GB_vR,LD_vL,LD_vR,H_vL,H_vR,AVG_vL,AVG_vR,OBP_vL,OBP_vR,SLG_vL,SLG_vR
|
||||
finlc001,Finley,Chuck,114133,finlc001,finlech01,384,50.0,135,43,126,2.0,0.0,15.0,12.0,5.0,0.0,0.0,0.0,11.0,6.0,32,12.0,0.0,1.0,0.0,0.0,7,33,17,42,7,14,12.0,22.0,0.27907,0.1746,0.38,0.24444,0.27907,0.2619
|
||||
petta001,Pettitte,Andy,120485,petta001,pettian01,840,39.0,124,38,113,1.0,0.0,23.0,8.0,6.0,0.0,0.0,0.0,13.0,1.0,19,14.0,2.0,1.0,0.0,0.0,7,13,11,42,5,26,8.0,30.0,0.21053,0.26549,0.25641,0.3629,0.21053,0.34513
|
||||
hillk001,Hill,Ken,115941,hillk001,hillke01,1005827,98.0,60,90,57,0.0,0.0,12.0,11.0,2.0,12.0,0.0,1.0,2.0,8.0,10,9.0,0.0,1.0,0.0,0.0,28,13,34,26,12,8,24.0,14.0,0.26667,0.24561,0.33673,0.26667,0.42222,0.2807
|
||||
welld001,Wells,David,124071,welld001,wellsda01,855,33.0,128,33,125,6.0,3.0,12.0,5.0,6.0,0.0,0.0,0.0,9.0,2.0,27,2.0,0.0,0.0,0.0,0.0,14,25,8,38,5,16,8.0,24.0,0.24242,0.192,0.30303,0.25781,0.51515,0.384
|
||||
nelsj001,Nelson,Jeff,119704,nelsj001,nelsoje01,1092,25.0,44,21,39,0.0,0.0,8.0,5.0,1.0,2.0,1.0,0.0,4.0,1.0,8,4.0,2.0,2.0,1.0,0.0,6,5,7,13,4,7,7.0,10.0,0.33333,0.25641,0.4,0.36364,0.42857,0.33333
|
||||
mcdoj001,McDowell,Jack,118656,mcdoj001,mcdowja01,1008473,75.0,52,72,51,3.0,2.0,10.0,8.0,6.0,3.0,0.0,0.0,1.0,7.0,7,17.0,0.0,0.0,0.0,0.0,13,15,27,12,7,12,13.0,19.0,0.18056,0.37255,0.26667,0.38462,0.30556,0.66667
|
||||
burbd001,Burba,Dave,111692,burbd001,burbada01,1239,86.0,70,78,65,1.0,2.0,7.0,10.0,3.0,5.0,1.0,1.0,6.0,6.0,11,16.0,0.0,1.0,1.0,0.0,23,22,25,23,10,7,18.0,12.0,0.23077,0.18462,0.2907,0.25714,0.39744,0.30769
|
||||
mesaj001,Mesa,Jose,118986,mesaj001,mesajo01,961,24.0,46,25,46,2.0,1.0,4.0,3.0,4.0,0.0,0.0,0.0,4.0,0.0,11,4.0,1.0,0.0,1.0,0.0,5,8,8,17,5,4,4.0,10.0,0.16,0.21739,0.16667,0.32609,0.28,0.43478
|
||||
watsa001,Watson,Allen,123982,watsa001,watsoal01,1013675,35.0,85,35,79,4.0,1.0,17.0,4.0,6.0,5.0,1.0,0.0,5.0,2.0,10,9.0,1.0,0.0,0.0,0.0,5,20,12,37,6,10,10.0,28.0,0.28571,0.35443,0.34286,0.4,0.51429,0.60759
|
||||
colob001,Colon,Bartolo,112526,colob001,colonba01,375,71.0,53,68,48,0.0,4.0,6.0,9.0,1.0,6.0,0.0,0.0,6.0,5.0,16,10.0,0.0,1.0,0.0,0.0,17,6,26,18,10,5,19.0,7.0,0.27941,0.14583,0.35211,0.24528,0.54412,0.16667
|
||||
nagyc001,Nagy,Charles,119640,nagyc001,nagych01,397,86.0,76,85,75,4.0,6.0,16.0,8.0,2.0,3.0,0.0,0.0,6.0,4.0,10,15.0,0.0,1.0,1.0,0.0,19,17,34,29,12,15,17.0,22.0,0.2,0.29333,0.25581,0.36842,0.44706,0.48
|
||||
martp001,Martinez,Pedro,118377,martp001,martipe02,200,92.0,70,87,68,1.0,2.0,8.0,12.0,2.0,3.0,0.0,0.0,5.0,5.0,28,29.0,0.0,1.0,1.0,0.0,17,14,13,14,19,12,17.0,11.0,0.1954,0.16176,0.25,0.22857,0.29885,0.23529
|
||||
waket001,Wakefield,Tim,123801,waket001,wakefti01,219,83.0,91,80,89,2.0,4.0,8.0,15.0,3.0,9.0,0.0,0.0,5.0,4.0,17,10.0,2.0,0.0,0.0,0.0,26,24,17,18,21,16,28.0,13.0,0.35,0.14607,0.38554,0.21978,0.6125,0.24719
|
||||
lowed001,Lowe,Derek,117955,lowed001,lowede01,199,51.0,49,51,49,0.0,1.0,4.0,8.0,1.0,3.0,0.0,0.0,3.0,3.0,14,6.0,1.0,0.0,1.0,0.0,8,4,20,21,12,5,12.0,5.0,0.23529,0.10204,0.29412,0.18367,0.35294,0.12245
|
||||
saunt001,Saunders,Tony,121711,saunt001,saundto01,1011463,27.0,87,28,78,1.0,0.0,12.0,4.0,1.0,4.0,0.0,3.0,13.0,1.0,20,3.0,1.0,0.0,0.0,1.0,10,16,11,18,3,13,11.0,14.0,0.39286,0.17949,0.44444,0.32184,0.75,0.23077
|
||||
alvaw001,Alvarez,Wilson,110209,alvaw001,alvarwi01,1193,26.0,101,23,97,1.0,0.0,17.0,2.0,2.0,2.0,0.0,0.0,8.0,3.0,20,4.0,1.0,1.0,0.0,0.0,5,26,6,28,4,12,4.0,20.0,0.17391,0.20619,0.30769,0.28713,0.26087,0.25773
|
||||
arror001,Arrojo,Rolando,134361,arror001,arrojro01,174,88.0,64,83,63,0.0,3.0,10.0,18.0,0.0,5.0,1.0,1.0,1.0,6.0,13,10.0,2.0,2.0,0.0,0.0,14,10,37,24,19,11,27.0,11.0,0.3253,0.1746,0.39773,0.21875,0.51807,0.20635
|
||||
drabd001,Drabek,Doug,113538,drabd001,drabedo01,1003473,49.0,50,49,47,3.0,3.0,10.0,7.0,0.0,1.0,0.0,1.0,4.0,3.0,6,5.0,0.0,0.0,0.0,0.0,14,19,20,12,5,6,12.0,13.0,0.2449,0.2766,0.30612,0.34,0.4898,0.46809
|
||||
erics001,Erickson,Scott,113884,erics001,ericksc01,137,99.0,67,100,69,3.0,0.0,11.0,17.0,1.0,8.0,0.0,0.0,2.0,7.0,13,11.0,1.0,0.0,1.0,0.0,5,12,53,29,20,9,25.0,15.0,0.25,0.21739,0.32323,0.26866,0.33,0.36232
|
||||
benea001,Benes,Andy,110854,benea001,benesan01,1144,108.0,81,97,70,3.0,5.0,13.0,11.0,1.0,9.0,0.0,0.0,6.0,8.0,10,11.0,2.0,0.0,1.0,1.0,29,10,33,37,13,7,25.0,17.0,0.25773,0.24286,0.30556,0.30864,0.50515,0.38571
|
||||
kiled001,Kile,Darryl,117046,kiled001,kileda01,1163,105.0,86,99,82,5.0,1.0,7.0,19.0,0.0,4.0,0.0,0.0,9.0,13.0,14,15.0,1.0,0.0,0.0,0.0,18,13,31,29,22,13,24.0,12.0,0.24242,0.14634,0.35238,0.25581,0.31313,0.32927
|
||||
blaiw001,Blair,Willie,111060,blaiw001,blairwi01,1001033,82.0,70,74,69,5.0,2.0,16.0,8.0,4.0,5.0,0.0,0.0,2.0,8.0,11,6.0,1.0,0.0,0.0,0.0,26,13,27,26,8,8,15.0,25.0,0.2027,0.36232,0.28049,0.4,0.35135,0.63768
|
||||
thomj005,Thomson,John,123307,thomj005,thomsjo01,453,57.0,59,59,55,2.0,0.0,15.0,7.0,1.0,3.0,1.0,0.0,4.0,4.0,10,9.0,1.0,0.0,0.0,0.0,10,13,24,15,7,13,10.0,19.0,0.16949,0.34545,0.24561,0.40678,0.22034,0.50909
|
||||
andeb002,Anderson,Brian,110230,andeb002,anderbr02,44,21.0,98,22,98,4.0,0.0,17.0,2.0,3.0,3.0,0.0,0.0,2.0,0.0,16,0.0,0.0,0.0,0.0,0.0,6,25,8,24,4,18,5.0,24.0,0.22727,0.2449,0.2381,0.26531,0.36364,0.39796
|
||||
astap001,Astacio,Pedro,110359,astap001,astacpe01,862,88.0,68,77,66,3.0,1.0,12.0,7.0,5.0,4.0,1.0,0.0,4.0,14.0,12,16.0,3.0,2.0,0.0,0.0,9,9,35,24,10,15,12.0,21.0,0.15584,0.31818,0.31818,0.41176,0.24675,0.56061
|
||||
dejem001,DeJean,Mike,113211,dejem001,dejeami01,682,21.0,40,22,35,2.0,0.0,5.0,2.0,3.0,1.0,1.0,0.0,6.0,0.0,1,3.0,1.0,0.0,0.0,0.0,4,5,13,20,1,4,3.0,11.0,0.13636,0.31429,0.14286,0.45,0.18182,0.62857
|
||||
suppj001,Suppan,Jeff,122987,suppj001,suppaje01,633,54.0,55,53,56,4.0,2.0,12.0,6.0,1.0,2.0,0.0,1.0,3.0,4.0,10,9.0,0.0,0.0,0.0,0.0,10,12,20,19,8,9,11.0,17.0,0.20755,0.30357,0.27778,0.36364,0.39623,0.53571
|
||||
gardm001,Gardner,Mark,114610,gardm001,gardnma01,1004529,40.0,77,38,73,4.0,0.0,10.0,5.0,5.0,4.0,1.0,1.0,5.0,3.0,14,7.0,0.0,0.0,1.0,1.0,6,7,12,24,7,13,10.0,20.0,0.26316,0.27397,0.325,0.32468,0.42105,0.53425
|
||||
johnj006,Johnstone,John,116651,johnj006,johnsjo07,1006475,21.0,42,18,37,0.0,0.0,4.0,0.0,2.0,0.0,0.0,0.0,5.0,1.0,9,6.0,0.0,0.0,1.0,0.0,2,7,8,11,0,5,0.0,6.0,0.0,0.16216,0.04762,0.2619,0.0,0.21622
|
||||
adamj001,Adamson,Joel,110069,adamj001,adamsjo02,1000056,20.0,78,17,69,4.0,0.0,9.0,5.0,2.0,0.0,0.0,0.0,9.0,2.0,13,1.0,2.0,1.0,0.0,0.0,5,18,8,23,2,7,5.0,15.0,0.29412,0.21739,0.4,0.33333,0.29412,0.42029
|
||||
darwd001,Darwin,Danny,113060,darwd001,darwida01,1002996,67.0,49,62,49,2.0,1.0,11.0,7.0,4.0,1.0,0.0,1.0,2.0,5.0,10,10.0,0.0,0.0,0.0,0.0,12,10,23,20,11,5,10.0,17.0,0.16129,0.34694,0.22388,0.38776,0.25806,0.55102
|
||||
estes001,Estes,Shawn,113915,estes001,estessh01,873,21.0,121,21,114,2.0,0.0,17.0,5.0,4.0,0.0,0.0,0.0,17.0,1.0,25,3.0,1.0,0.0,0.0,2.0,3,17,8,40,4,18,5.0,23.0,0.2381,0.20175,0.28571,0.33884,0.2381,0.28947
|
||||
medir001,Medina,Rafael,133241,medir001,medinra01,1008716,39.0,53,36,48,1.0,0.0,9.0,7.0,3.0,2.0,1.0,2.0,4.0,7.0,7,4.0,0.0,0.0,0.0,2.0,6,16,14,11,8,12,11.0,14.0,0.30556,0.29167,0.46154,0.33962,0.47222,0.45833
|
||||
sancj001,Sanchez,Jesus,133260,sancj001,sanchje01,1476,24.0,53,17,45,2.0,0.0,5.0,5.0,0.0,0.0,0.0,0.0,6.0,7.0,7,3.0,0.0,0.0,0.0,1.0,2,11,9,12,2,8,5.0,7.0,0.29412,0.15556,0.5,0.24528,0.29412,0.28889
|
||||
larka001,Larkin,Andy,117500,larka001,larkian01,1007345,44.0,49,38,49,1.0,1.0,6.0,7.0,1.0,0.0,1.0,0.0,2.0,8.0,5,7.0,0.0,0.0,1.0,1.0,9,10,13,25,3,4,8.0,9.0,0.21053,0.18367,0.36364,0.22449,0.28947,0.30612
|
||||
heref001,Heredia,Felix,115803,heref001,heredfe01,1304,33.0,47,33,43,1.0,0.0,7.0,2.0,4.0,1.0,0.0,1.0,9.0,2.0,7,8.0,1.0,0.0,0.0,0.0,5,12,11,6,4,11,4.0,12.0,0.12121,0.27907,0.18182,0.46809,0.21212,0.44186
|
||||
meadb001,Meadows,Brian,132785,meadb001,meadobr01,998,74.0,76,75,77,0.0,1.0,12.0,14.0,1.0,4.0,2.0,0.0,3.0,3.0,10,6.0,0.0,0.0,1.0,0.0,17,12,24,33,18,13,19.0,15.0,0.25333,0.19481,0.2973,0.23684,0.34667,0.25974
|
||||
hernl003,Hernandez,Livan,115817,hernl003,hernali01,1116,75.0,81,72,74,4.0,2.0,15.0,7.0,1.0,1.0,0.0,1.0,7.0,10.0,18,14.0,1.0,0.0,0.0,1.0,18,16,21,12,9,15,11.0,20.0,0.15278,0.27027,0.28,0.34568,0.27778,0.44595
|
||||
glavt001,Glavine,Tom,114849,glavt001,glavito02,90,23.0,107,24,101,0.0,2.0,17.0,2.0,6.0,0.0,0.0,0.0,7.0,1.0,20,5.0,0.0,0.0,0.0,0.0,3,19,9,44,4,13,4.0,23.0,0.16667,0.22772,0.21739,0.28037,0.41667,0.28713
|
||||
martd001,Martinez,Dennis,118371,martd001,martide01,1008161,37.0,46,36,48,2.0,1.0,8.0,10.0,2.0,0.0,1.0,0.0,1.0,0.0,11,5.0,0.0,0.0,3.0,0.0,7,12,18,11,5,11,11.0,13.0,0.30556,0.27083,0.2973,0.30435,0.38889,0.47917
|
||||
maddg002,Maddux,Greg,118120,maddg002,maddugr01,104,65.0,101,62,104,1.0,0.0,15.0,16.0,2.0,1.0,0.0,0.0,0.0,3.0,21,10.0,1.0,0.0,2.0,0.0,8,9,32,55,9,13,17.0,18.0,0.27419,0.17308,0.30769,0.18812,0.29032,0.22115
|
||||
eldrc001,Eldred,Cal,113793,eldrc001,eldreca01,1653,66.0,86,60,79,1.0,1.0,15.0,9.0,1.0,2.0,0.0,1.0,8.0,5.0,13,12.0,0.0,1.0,0.0,0.0,11,19,17,29,13,13,13.0,17.0,0.21667,0.21519,0.28788,0.2907,0.33333,0.26582
|
||||
karls001,Karl,Scott,116845,karls001,karlsc01,1006703,27.0,98,24,99,1.0,1.0,17.0,3.0,4.0,2.0,0.0,0.0,5.0,2.0,17,3.0,0.0,2.0,0.0,0.0,1,16,12,38,7,17,6.0,22.0,0.25,0.22222,0.37037,0.27551,0.45833,0.29293
|
||||
neagd001,Neagle,Denny,119673,neagd001,neaglde01,441,33.0,131,34,130,4.0,1.0,22.0,3.0,3.0,1.0,0.0,0.0,5.0,2.0,27,3.0,0.0,0.0,0.0,0.0,7,34,11,33,8,24,5.0,29.0,0.14706,0.22308,0.21212,0.25954,0.26471,0.33846
|
||||
gracm002,Grace,Mike,115008,gracm002,gracemi02,1004915,53.0,57,56,52,1.0,0.0,6.0,12.0,1.0,4.0,0.0,1.0,7.0,3.0,15,5.0,1.0,0.0,1.0,0.0,6,11,29,16,8,6,17.0,8.0,0.30357,0.15385,0.37736,0.2807,0.41071,0.23077
|
||||
millk004,Millwood,Kevin,119154,millk004,millwke01,106,54.0,65,50,65,0.0,0.0,10.0,10.0,1.0,1.0,0.0,0.0,1.0,8.0,24,13.0,1.0,0.0,0.0,0.0,7,7,17,20,6,8,11.0,11.0,0.22,0.16923,0.35185,0.2,0.24,0.18462
|
||||
greet002,Green,Tyler,115095,greet002,greenty01,1005014,49.0,62,43,56,0.0,0.0,9.0,5.0,1.0,2.0,0.0,1.0,5.0,7.0,7,8.0,2.0,0.0,1.0,0.0,6,10,20,28,6,9,8.0,10.0,0.18605,0.17857,0.30612,0.27419,0.27907,0.19643
|
||||
schic002,Schilling,Curt,121811,schic002,schilcu01,73,85.0,94,81,88,2.0,2.0,10.0,9.0,0.0,2.0,0.0,1.0,7.0,5.0,33,32.0,0.0,0.0,0.0,0.0,17,4,19,33,10,12,14.0,12.0,0.17284,0.13636,0.22353,0.20213,0.2963,0.20455
|
||||
liebj001,Lieber,Jon,117758,liebj001,liebejo01,287,67.0,59,58,57,0.0,7.0,7.0,8.0,2.0,2.0,0.0,0.0,3.0,7.0,16,11.0,1.0,0.0,1.0,1.0,17,11,20,16,10,5,17.0,9.0,0.2931,0.15789,0.35821,0.22034,0.68966,0.19298
|
||||
petec001,Peters,Chris,120454,petec001,peterch01,1010225,21.0,40,20,33,0.0,1.0,4.0,3.0,2.0,0.0,1.0,0.0,5.0,1.0,4,8.0,1.0,0.0,0.0,2.0,5,5,7,18,1,3,4.0,7.0,0.2,0.21212,0.2381,0.325,0.35,0.33333
|
||||
silvj001,Silva,Jose,122231,silvj001,silvajo01,354,64.0,61,55,60,0.0,1.0,11.0,14.0,3.0,2.0,0.0,1.0,2.0,8.0,13,10.0,0.0,0.0,1.0,0.0,16,10,18,25,11,11,18.0,14.0,0.32727,0.23333,0.40625,0.2623,0.45455,0.28333
|
||||
cordf001,Cordova,Francisco,112681,cordf001,cordofr01,1002623,81.0,73,79,66,1.0,1.0,10.0,10.0,3.0,3.0,0.0,0.0,5.0,4.0,13,15.0,0.0,0.0,1.0,0.0,14,9,28,29,15,9,14.0,14.0,0.17722,0.21212,0.22222,0.26027,0.25316,0.30303
|
||||
wrigj001,Wright,Jamey,124604,wrigj001,wrighja01,715,48.0,64,47,59,1.0,0.0,14.0,5.0,4.0,3.0,0.0,1.0,11.0,4.0,6,6.0,0.0,0.0,0.0,0.0,8,9,22,22,4,14,9.0,19.0,0.19149,0.32203,0.27083,0.46875,0.29787,0.44068
|
||||
herso001,Hershiser,Orel,115861,herso001,hershor01,1005741,63.0,82,62,74,2.0,1.0,8.0,7.0,5.0,1.0,0.0,0.0,8.0,5.0,14,9.0,3.0,0.0,0.0,0.0,11,10,29,32,5,12,9.0,15.0,0.14516,0.2027,0.22222,0.31707,0.20968,0.35135
|
||||
mussm001,Mussina,Mike,119608,mussm001,mussimi01,837,63.0,44,63,44,2.0,1.0,8.0,9.0,0.0,2.0,0.0,0.0,1.0,2.0,9,21.0,0.0,0.0,0.0,0.0,12,7,15,17,12,6,12.0,10.0,0.19048,0.22727,0.22222,0.25,0.26984,0.36364
|
||||
belct001,Belcher,Tim,110809,belct001,belchti01,1000789,71.0,71,66,64,1.0,3.0,10.0,11.0,3.0,2.0,0.0,0.0,6.0,7.0,14,6.0,3.0,0.0,0.0,0.0,20,14,25,18,7,10,16.0,14.0,0.24242,0.21875,0.32394,0.32394,0.40909,0.3125
|
||||
rosaj001,Rosado,Jose,121443,rosaj001,rosadjo01,1011192,29.0,44,28,44,1.0,0.0,7.0,3.0,2.0,1.0,0.0,0.0,5.0,2.0,4,10.0,0.0,1.0,0.0,0.0,3,8,8,17,3,8,4.0,10.0,0.14286,0.22727,0.24138,0.34091,0.17857,0.34091
|
||||
servs001,Service,Scott,122012,servs001,servisc01,1684,22.0,40,22,37,1.0,0.0,8.0,2.0,3.0,0.0,0.0,0.0,2.0,2.0,13,5.0,4.0,0.0,0.0,0.0,3,8,7,3,3,8,2.0,12.0,0.09091,0.32432,0.18182,0.45,0.09091,0.48649
|
||||
ruscg001,Rusch,Glendon,121556,ruscg001,ruschgl01,707,32.0,117,31,120,3.0,0.0,24.0,2.0,5.0,2.0,1.0,0.0,6.0,3.0,15,10.0,0.0,1.0,0.0,0.0,5,35,6,31,4,25,4.0,33.0,0.12903,0.275,0.25,0.33333,0.19355,0.40833
|
||||
key-j001,Key,Jimmy,117032,key-j001,keyji01,1006885,20.0,115,22,112,1.0,0.0,17.0,3.0,4.0,2.0,0.0,0.0,8.0,0.0,23,4.0,0.0,1.0,0.0,0.0,4,26,5,33,6,17,5.0,22.0,0.22727,0.19643,0.3,0.26087,0.31818,0.25893
|
||||
rappp001,Rapp,Pat,120933,rappp001,rapppa01,1010700,70.0,53,60,46,2.0,1.0,4.0,11.0,4.0,0.0,0.0,0.0,5.0,13.0,7,7.0,1.0,0.0,1.0,0.0,15,14,24,14,8,10,12.0,10.0,0.2,0.21739,0.35714,0.30189,0.25,0.43478
|
||||
keagg001,Keagle,Greg,116871,keagg001,keaglgr01,1006726,67.0,45,66,47,0.0,2.0,7.0,10.0,1.0,4.0,0.0,0.0,1.0,7.0,6,13.0,1.0,1.0,0.0,0.0,11,9,14,18,18,9,16.0,8.0,0.24242,0.17021,0.35821,0.22222,0.39394,0.19149
|
||||
thomj003,Thompson,Justin,123294,thomj003,thompju02,8217,36.0,102,39,95,0.0,2.0,16.0,5.0,3.0,2.0,0.0,0.0,13.0,0.0,22,5.0,0.0,0.0,0.0,0.0,10,14,8,28,8,20,9.0,19.0,0.23077,0.2,0.25,0.31373,0.4359,0.23158
|
||||
eyres001,Eyre,Scott,113961,eyres001,eyresc01,1300,35.0,92,32,80,5.0,2.0,9.0,6.0,4.0,1.0,1.0,0.0,13.0,4.0,20,2.0,0.0,0.0,0.0,0.0,10,23,10,22,6,10,9.0,19.0,0.28125,0.2375,0.37143,0.34783,0.5,0.5
|
||||
baldj002,Baldwin,James,110503,baldj002,baldwja01,1064,64.0,46,61,42,1.0,2.0,6.0,10.0,1.0,4.0,1.0,0.0,4.0,9.0,7,14.0,0.0,0.0,0.0,0.0,22,12,9,9,11,10,16.0,9.0,0.2623,0.21429,0.39062,0.28261,0.42623,0.35714
|
||||
sirom001,Sirotka,Mike,122276,sirom001,sirotmi01,1012015,41.0,97,40,93,3.0,2.0,15.0,6.0,5.0,2.0,0.0,1.0,4.0,2.0,15,4.0,0.0,0.0,0.0,0.0,8,20,16,31,9,17,11.0,23.0,0.275,0.24731,0.31707,0.27835,0.525,0.39785
|
||||
rogek001,Rogers,Kenny,121386,rogek001,rogerke01,1277,43.0,114,34,116,1.0,2.0,14.0,5.0,6.0,2.0,0.0,0.0,6.0,10.0,15,8.0,2.0,0.0,0.0,0.0,6,21,14,44,5,23,9.0,21.0,0.26471,0.18103,0.44186,0.25439,0.5,0.25862
|
||||
haynj001,Haynes,Jimmy,115649,haynj001,hayneji01,329,83.0,62,72,63,0.0,1.0,11.0,17.0,2.0,5.0,1.0,0.0,4.0,11.0,11,8.0,1.0,1.0,1.0,0.0,6,12,32,18,19,11,23.0,14.0,0.31944,0.22222,0.42169,0.30645,0.43056,0.28571
|
||||
candt001,Candiotti,Tom,111954,candt001,candito01,1001911,86.0,83,82,79,0.0,1.0,10.0,15.0,3.0,4.0,0.0,0.0,5.0,7.0,7,11.0,3.0,0.0,0.0,0.0,17,18,32,35,12,8,20.0,13.0,0.2439,0.16456,0.31395,0.25301,0.32927,0.20253
|
||||
roseb002,Rose,Brian,121450,roseb002,rosebr01,1011201,53.0,46,46,47,0.0,3.0,7.0,7.0,2.0,2.0,0.0,0.0,2.0,8.0,6,7.0,0.0,1.0,0.0,0.0,13,10,8,16,12,8,12.0,9.0,0.26087,0.19149,0.39623,0.23913,0.5,0.23404
|
||||
spolp001,Spoljaric,Paul,122605,spolp001,spoljpa01,1012349,22.0,41,18,35,0.0,1.0,3.0,3.0,3.0,0.0,0.0,0.0,4.0,5.0,7,9.0,1.0,0.0,0.0,2.0,6,5,1,16,3,2,4.0,6.0,0.22222,0.17143,0.40909,0.26829,0.38889,0.25714
|
||||
moyej001,Moyer,Jamie,119469,moyej001,moyerja01,1091,42.0,123,39,122,3.0,0.0,16.0,5.0,8.0,3.0,1.0,0.0,3.0,2.0,23,11.0,1.0,3.0,0.0,0.0,7,20,10,46,8,24,8.0,28.0,0.20513,0.22951,0.30952,0.26016,0.28205,0.38525
|
||||
ayalb002,Ayala,Bobby,110402,ayalb002,ayalabo01,1000384,33.0,40,32,37,1.0,1.0,8.0,2.0,1.0,2.0,0.0,1.0,2.0,3.0,6,6.0,1.0,0.0,0.0,0.0,8,6,7,19,6,4,6.0,10.0,0.1875,0.27027,0.27273,0.325,0.40625,0.37838
|
||||
wrigj002,Wright,Jaret,124605,wrigj002,wrighja02,415,73.0,60,69,54,1.0,3.0,7.0,12.0,2.0,6.0,0.0,0.0,7.0,4.0,15,10.0,0.0,3.0,1.0,0.0,15,11,25,16,14,7,21.0,10.0,0.30435,0.18519,0.38356,0.28333,0.52174,0.27778
|
||||
navaj001,Navarro,Jaime,119667,navaj001,navarja01,1009465,80.0,70,76,62,4.0,1.0,7.0,13.0,3.0,4.0,0.0,0.0,9.0,8.0,9,11.0,1.0,1.0,0.0,0.0,13,14,27,20,16,9,18.0,14.0,0.23684,0.22581,0.3375,0.34286,0.32895,0.46774
|
||||
wittb001,Witt,Bobby,124492,wittb001,wittbo01,1014170,73.0,66,63,62,3.0,0.0,10.0,16.0,4.0,6.0,0.0,2.0,4.0,10.0,2,7.0,0.0,0.0,0.0,0.0,12,23,19,20,22,12,24.0,17.0,0.38095,0.27419,0.46575,0.31818,0.53968,0.48387
|
||||
selea001,Sele,Aaron,121986,selea001,seleaa01,34,79.0,60,76,55,1.0,0.0,9.0,8.0,1.0,5.0,0.0,0.0,8.0,3.0,9,18.0,1.0,1.0,0.0,0.0,8,8,25,25,18,7,13.0,11.0,0.17105,0.2,0.21519,0.33333,0.23684,0.27273
|
||||
berej002,Bere,Jason,110891,berej002,bereja01,266,70.0,46,59,43,0.0,1.0,6.0,13.0,1.0,5.0,0.0,0.0,3.0,13.0,5,9.0,0.0,0.0,0.0,0.0,16,15,16,10,10,7,19.0,7.0,0.32203,0.16279,0.45714,0.21739,0.45763,0.18605
|
||||
hentp001,Hentgen,Pat,115797,hentp001,hentgpa01,145,64.0,75,62,71,5.0,1.0,9.0,8.0,4.0,5.0,0.0,0.0,5.0,2.0,7,7.0,1.0,1.0,0.0,0.0,16,18,23,32,9,9,14.0,18.0,0.22581,0.25352,0.26562,0.32,0.35484,0.52113
|
||||
guzmj003,Guzman,Juan,115267,guzmj003,guzmaju01,1005162,77.0,70,69,65,1.0,1.0,1.0,11.0,6.0,4.0,0.0,0.0,8.0,14.0,20,10.0,2.0,0.0,0.0,0.0,12,11,28,15,11,8,16.0,8.0,0.23188,0.12308,0.38961,0.25714,0.33333,0.26154
|
||||
hanse001,Hanson,Erik,115446,hanse001,hansoer01,1005333,40.0,42,37,37,2.0,0.0,5.0,11.0,3.0,1.0,0.0,0.0,5.0,4.0,5,2.0,0.0,0.0,0.0,0.0,8,8,14,14,12,7,12.0,10.0,0.32432,0.27027,0.4,0.35714,0.35135,0.51351
|
||||
rislb001,Risley,Bill,121231,rislb001,rislebi01,1010986,29.0,40,28,38,0.0,0.0,6.0,3.0,1.0,2.0,1.0,0.0,3.0,2.0,12,7.0,0.0,1.0,0.0,0.0,6,8,4,13,6,4,5.0,8.0,0.17857,0.21053,0.27586,0.275,0.25,0.28947
|
||||
tracs001,Trachsel,Steve,123431,tracs001,trachst01,898,63.0,63,56,58,2.0,1.0,7.0,11.0,2.0,0.0,1.0,0.0,4.0,10.0,12,9.0,3.0,0.0,0.0,0.0,14,14,20,14,7,10,12.0,12.0,0.21429,0.2069,0.34921,0.30159,0.26786,0.37931
|
||||
vazqj001,Vazquez,Javier,134320,vazqj001,vazquja01,801,36.0,62,34,57,1.0,0.0,12.0,4.0,3.0,0.0,2.0,0.0,8.0,6.0,12,6.0,1.0,0.0,0.0,0.0,13,11,7,18,4,11,4.0,18.0,0.11765,0.31579,0.27778,0.43548,0.11765,0.49123
|
||||
batim001,Batista,Miguel,110683,batim001,batismi01,46,37.0,44,29,45,1.0,1.0,0.0,7.0,4.0,2.0,0.0,0.0,4.0,9.0,8,6.0,0.0,0.0,1.0,0.0,2,10,14,13,3,6,10.0,5.0,0.34483,0.11111,0.51351,0.20455,0.51724,0.26667
|
||||
piscm001,Pisciotta,Marc,120599,piscm001,piscima01,1010369,33.0,44,23,43,1.0,0.0,10.0,2.0,1.0,1.0,0.0,0.0,2.0,9.0,8,4.0,0.0,0.0,0.0,0.0,6,5,8,21,4,6,3.0,12.0,0.13043,0.27907,0.36364,0.31818,0.17391,0.37209
|
||||
valdm001,Valdes,Marc,123596,valdm001,valdema01,1013313,24.0,58,21,54,1.0,1.0,10.0,3.0,0.0,1.0,0.0,0.0,8.0,3.0,12,0.0,0.0,1.0,1.0,0.0,8,5,6,22,4,8,5.0,11.0,0.2381,0.2037,0.375,0.32759,0.42857,0.25926
|
||||
tapak001,Tapani,Kevin,123090,tapak001,tapanke01,1012824,83.0,65,76,64,2.0,0.0,4.0,12.0,2.0,3.0,0.0,2.0,4.0,8.0,15,6.0,1.0,1.0,0.0,0.0,17,9,30,24,14,8,17.0,8.0,0.22368,0.125,0.31325,0.2,0.31579,0.25
|
||||
moort001,Moore,Trey,134340,moort001,mooretr01,1009130,28.0,66,28,68,3.0,0.0,9.0,4.0,5.0,2.0,0.0,0.0,3.0,2.0,10,6.0,0.0,0.0,0.0,2.0,10,16,5,24,5,13,6.0,17.0,0.21429,0.25,0.28571,0.30303,0.28571,0.45588
|
||||
telea001,Telemaco,Amaury,123176,telea001,telemam01,1802,39.0,51,39,45,1.0,2.0,2.0,4.0,1.0,4.0,0.0,0.0,7.0,3.0,10,6.0,0.0,0.0,0.0,0.0,9,9,10,15,8,4,10.0,4.0,0.25641,0.08889,0.33333,0.21569,0.51282,0.17778
|
||||
clarm002,Clark,Mark,112332,clarm002,clarkma01,1002296,70.0,79,68,74,0.0,1.0,13.0,13.0,3.0,3.0,0.0,1.0,5.0,4.0,15,10.0,1.0,1.0,0.0,1.0,20,13,21,30,15,8,18.0,16.0,0.26471,0.21622,0.32857,0.27848,0.38235,0.25676
|
||||
perec001,Perez,Carlos,120405,perec001,perezca01,1010179,42.0,131,42,120,2.0,0.0,16.0,11.0,7.0,3.0,1.0,2.0,10.0,1.0,20,3.0,0.0,1.0,0.0,2.0,13,24,14,47,9,22,16.0,26.0,0.38095,0.21667,0.42857,0.27481,0.54762,0.34167
|
||||
gonzj003,Gonzalez,Geremi,114928,gonzj003,gonzaje01,1711,42.0,60,41,56,2.0,0.0,8.0,3.0,1.0,5.0,0.0,1.0,5.0,2.0,8,12.0,0.0,0.0,0.0,2.0,10,13,13,19,7,8,9.0,11.0,0.21951,0.19643,0.2619,0.26667,0.39024,0.32143
|
||||
leita001,Leiter,Al,117652,leita001,leiteal01,883,26.0,101,24,95,0.0,0.0,17.0,3.0,4.0,2.0,0.0,0.0,9.0,1.0,20,7.0,2.0,1.0,0.0,0.0,3,8,9,40,4,15,5.0,21.0,0.20833,0.22105,0.26923,0.31683,0.29167,0.26316
|
||||
reedr002,Reed,Rick,120999,reedr002,reedri01,750,47.0,85,47,83,2.0,1.0,12.0,8.0,4.0,3.0,0.0,0.0,2.0,2.0,10,9.0,0.0,0.0,0.0,1.0,10,15,12,39,11,11,12.0,18.0,0.25532,0.21687,0.29787,0.23529,0.38298,0.33735
|
||||
parkc002,Park,Chan Ho,120221,parkc002,parkch01,1267,59.0,74,52,72,1.0,2.0,13.0,6.0,2.0,3.0,0.0,1.0,7.0,8.0,17,12.0,1.0,0.0,0.0,0.0,13,12,15,23,9,10,12.0,16.0,0.23077,0.22222,0.33898,0.32432,0.44231,0.29167
|
||||
woodk002,Wood,Kerry,134268,woodk002,woodke02,304,24.0,51,19,47,0.0,0.0,7.0,2.0,2.0,1.0,0.0,0.0,4.0,6.0,20,5.0,1.0,1.0,0.0,0.0,3,6,5,13,3,8,3.0,9.0,0.15789,0.19149,0.41667,0.27451,0.21053,0.23404
|
||||
nomoh001,Nomo,Hideo,119827,nomoh001,nomohi01,666,60.0,68,51,66,2.0,3.0,6.0,3.0,1.0,1.0,0.0,0.0,5.0,7.0,22,16.0,0.0,2.0,0.0,0.0,15,15,17,16,1,9,7.0,9.0,0.13725,0.13636,0.26667,0.20588,0.33333,0.24242
|
||||
dreid001,Dreifort,Darren,113554,dreid001,dreifda01,647,50.0,41,49,41,0.0,0.0,2.0,7.0,5.0,1.0,0.0,0.0,2.0,1.0,9,14.0,0.0,0.0,1.0,0.0,8,7,21,16,5,4,8.0,7.0,0.16327,0.17073,0.18,0.21951,0.18367,0.29268
|
||||
valdi001,Valdez,Ismael,123595,valdi001,valdeis01,1283,61.0,96,58,93,4.0,2.0,22.0,11.0,2.0,2.0,0.0,1.0,4.0,3.0,21,7.0,1.0,0.0,1.0,0.0,19,18,19,32,9,15,16.0,28.0,0.27586,0.30108,0.31148,0.34375,0.44828,0.45161
|
||||
browk001,Brown,Kevin,111554,browk001,brownke01,642,88.0,63,87,65,1.0,1.0,11.0,16.0,2.0,1.0,0.0,0.0,3.0,3.0,17,19.0,0.0,0.0,1.0,0.0,7,11,42,25,12,6,18.0,14.0,0.2069,0.21538,0.23864,0.26984,0.25287,0.29231
|
||||
hamij002,Hamilton,Joey,115383,hamij002,hamiljo02,328,68.0,85,63,80,2.0,2.0,8.0,9.0,3.0,4.0,0.0,1.0,9.0,7.0,11,12.0,0.0,0.0,0.0,0.0,20,17,21,33,5,7,16.0,13.0,0.25397,0.1625,0.33824,0.25882,0.44444,0.275
|
||||
ashba002,Ashby,Andy,110351,ashba002,ashbyan01,637,75.0,89,69,88,1.0,1.0,16.0,12.0,2.0,2.0,0.0,1.0,4.0,5.0,16,12.0,0.0,0.0,0.0,0.0,18,14,27,34,12,12,16.0,19.0,0.23188,0.21591,0.28,0.25843,0.33333,0.27273
|
||||
bottk001,Bottenfield,Kent,111264,bottk001,botteke01,1001226,29.0,41,29,35,2.0,0.0,5.0,5.0,3.0,0.0,0.0,0.0,3.0,1.0,10,7.0,0.0,1.0,0.0,1.0,6,5,9,6,3,10,5.0,10.0,0.17241,0.28571,0.24138,0.31707,0.17241,0.54286
|
||||
weatd001,Weathers,David,124000,weatd001,weathda01,902,47.0,52,45,55,0.0,1.0,11.0,9.0,2.0,2.0,0.0,2.0,1.0,3.0,11,8.0,0.0,0.0,1.0,0.0,4,6,21,18,10,14,14.0,13.0,0.31111,0.23636,0.3617,0.26923,0.51111,0.27273
|
||||
harnp001,Harnisch,Pete,115487,harnp001,harnipe01,1005374,73.0,82,66,74,1.0,2.0,10.0,6.0,4.0,3.0,0.0,0.0,5.0,7.0,13,8.0,1.0,0.0,0.0,0.0,20,16,19,30,11,13,11.0,15.0,0.16667,0.2027,0.24658,0.2561,0.30303,0.2973
|
||||
belis001,Belinda,Stan,110811,belis001,belinst01,1000792,38.0,47,31,45,0.0,0.0,4.0,6.0,2.0,0.0,0.0,0.0,4.0,8.0,10,5.0,1.0,0.0,1.0,2.0,8,8,5,11,8,8,6.0,6.0,0.19355,0.13333,0.36842,0.23404,0.19355,0.17778
|
||||
tomkb001,Tomko,Brett,123387,tomkb001,tomkobr01,1056,56.0,88,52,79,0.0,1.0,8.0,8.0,1.0,5.0,1.0,0.0,7.0,3.0,13,13.0,1.0,0.0,0.0,0.0,12,18,12,28,15,12,14.0,10.0,0.26923,0.12658,0.30357,0.20455,0.42308,0.16456
|
||||
martr002,Martinez,Ramon,118378,martr002,martira02,1008193,62.0,89,55,87,0.0,2.0,7.0,5.0,5.0,3.0,0.0,0.0,5.0,8.0,26,11.0,0.0,1.0,0.0,0.0,15,16,14,32,8,7,10.0,12.0,0.18182,0.13793,0.30645,0.19101,0.34545,0.1954
|
||||
reyns001,Reynolds,Shane,121110,reyns001,reynosh01,574,65.0,92,62,91,2.0,1.0,22.0,6.0,6.0,6.0,0.0,0.0,5.0,6.0,16,14.0,0.0,0.0,1.0,0.0,7,11,23,37,10,18,13.0,30.0,0.20968,0.32967,0.29231,0.38043,0.35484,0.46154
|
||||
hampm001,Hampton,Mike,115399,hampm001,hamptmi01,430,27.0,147,26,143,3.0,0.0,28.0,6.0,8.0,0.0,1.0,0.0,8.0,3.0,25,5.0,0.0,0.0,0.0,0.0,1,22,13,68,2,20,6.0,40.0,0.23077,0.27972,0.33333,0.32653,0.23077,0.41259
|
||||
joneb003,Jones,Bobby,116717,joneb003,jonesbo03,1039,57.0,67,55,63,1.0,0.0,5.0,9.0,2.0,3.0,2.0,0.0,7.0,5.0,6,9.0,2.0,0.0,0.0,0.0,7,9,18,27,12,10,12.0,10.0,0.21818,0.15873,0.29825,0.28358,0.27273,0.30159
|
||||
yoshm001,Yoshii,Masato,134180,yoshm001,yoshima01,807,41.0,57,36,54,0.0,2.0,8.0,6.0,2.0,1.0,0.0,0.0,4.0,4.0,7,12.0,0.0,0.0,0.0,0.0,8,15,10,17,7,9,9.0,10.0,0.25,0.18519,0.31707,0.24561,0.44444,0.22222
|
||||
stepg001,Stephenson,Garrett,122751,stepg001,stephga01,1185,44.0,41,44,35,0.0,2.0,4.0,7.0,1.0,4.0,0.0,0.0,8.0,5.0,7,7.0,0.0,0.0,0.0,0.0,10,10,15,11,5,5,13.0,5.0,0.29545,0.14286,0.40909,0.31707,0.52273,0.17143
|
||||
clouk001,Cloude,Ken,112415,clouk001,cloudke01,1002362,81.0,72,70,70,1.0,6.0,9.0,10.0,3.0,5.0,0.0,0.0,6.0,12.0,6,14.0,0.0,0.0,0.0,0.0,24,19,11,23,16,11,21.0,13.0,0.3,0.18571,0.40741,0.26389,0.62857,0.27143
|
||||
swifb001,Swift,Bill,123053,swifb001,swiftbi02,1012788,50.0,46,50,42,1.0,1.0,5.0,4.0,2.0,4.0,0.0,0.0,5.0,5.0,5,6.0,0.0,0.0,1.0,0.0,6,9,24,23,8,5,9.0,8.0,0.18,0.19048,0.28,0.28261,0.32,0.30952
|
||||
polic001,Politte,Cliff,131700,polic001,politcl01,967,46.0,66,43,60,3.0,1.0,8.0,6.0,3.0,2.0,1.0,0.0,6.0,4.0,9,6.0,1.0,0.0,0.0,0.0,8,13,12,20,10,11,9.0,15.0,0.2093,0.25,0.28261,0.33333,0.32558,0.48333
|
||||
aybam001,Aybar,Manny,110403,aybam001,aybarma01,1107,58.0,50,52,46,1.0,1.0,12.0,7.0,5.0,5.0,0.0,0.0,4.0,8.0,8,8.0,1.0,0.0,0.0,0.0,8,6,18,13,12,14,13.0,18.0,0.25,0.3913,0.36207,0.46,0.40385,0.56522
|
||||
thomm002,Thompson,Mark,123296,thomm002,thompma01,1013019,30.0,59,35,50,4.0,3.0,11.0,4.0,2.0,2.0,0.0,0.0,7.0,1.0,5,6.0,4.0,0.0,0.0,0.0,7,10,11,19,5,8,9.0,17.0,0.25714,0.34,0.33333,0.47458,0.57143,0.62
|
||||
moehb001,Moehler,Brian,119215,moehb001,moehlbr01,480,87.0,54,86,57,0.0,4.0,8.0,9.0,1.0,5.0,0.0,4.0,1.0,7.0,14,10.0,0.0,0.0,1.0,0.0,24,5,29,24,14,7,22.0,9.0,0.25581,0.15789,0.33333,0.18519,0.54651,0.17544
|
||||
coned001,Cone,David,112552,coned001,coneda01,1680,63.0,52,62,53,0.0,0.0,9.0,10.0,1.0,4.0,0.0,2.0,4.0,5.0,15,12.0,0.0,1.0,0.0,0.0,13,9,18,14,12,8,16.0,10.0,0.25806,0.18868,0.34921,0.26923,0.3871,0.20755
|
||||
mendr001,Mendoza,Ramiro,118947,mendr001,mendora01,836,57.0,49,53,48,1.0,0.0,8.0,12.0,2.0,4.0,0.0,1.0,2.0,2.0,4,5.0,0.0,2.0,1.0,0.0,10,7,27,28,11,7,17.0,11.0,0.32075,0.22917,0.36842,0.26531,0.43396,0.33333
|
||||
burkj001,Burkett,John,111734,burkj001,burkejo03,179,71.0,75,70,76,3.0,1.0,15.0,9.0,2.0,2.0,0.0,0.0,5.0,6.0,13,13.0,0.0,1.0,0.0,0.0,8,16,27,26,12,13,12.0,20.0,0.17143,0.26316,0.26761,0.33333,0.24286,0.40789
|
||||
mercj001,Mercedes,Jose,118960,mercj001,mercejo02,396,51.0,65,46,65,1.0,1.0,13.0,9.0,2.0,0.0,0.0,0.0,1.0,5.0,6,4.0,0.0,0.0,0.0,1.0,15,19,12,21,11,12,10.0,16.0,0.21739,0.24615,0.29412,0.26154,0.28261,0.32308
|
||||
judej001,Juden,Jeff,116785,judej001,judenje01,1006643,69.0,71,60,67,2.0,1.0,9.0,10.0,2.0,4.0,0.0,1.0,4.0,10.0,14,13.0,1.0,1.0,0.0,0.0,9,13,23,28,12,6,16.0,13.0,0.26667,0.19403,0.3913,0.25352,0.41667,0.31343
|
||||
halaj001,Halama,John,134280,halaj001,halamjo01,1080,29.0,107,26,100,0.0,0.0,13.0,3.0,7.0,4.0,2.0,0.0,11.0,2.0,12,9.0,1.0,1.0,0.0,0.0,4,24,6,44,4,13,7.0,22.0,0.26923,0.22,0.34483,0.31776,0.42308,0.33
|
||||
ruetk001,Rueter,Kirk,121541,ruetk001,rueteki01,1128,20.0,103,20,95,1.0,0.0,15.0,1.0,5.0,0.0,1.0,0.0,10.0,1.0,12,5.0,1.0,0.0,0.0,0.0,1,16,8,38,3,18,1.0,22.0,0.05,0.23158,0.1,0.32039,0.05,0.33684
|
||||
limaj001,Lima,Jose,117769,limaj001,limajo01,475,80.0,81,78,81,2.0,1.0,11.0,15.0,3.0,3.0,1.0,1.0,1.0,5.0,18,11.0,0.0,0.0,0.0,0.0,11,20,32,30,13,8,20.0,17.0,0.25641,0.20988,0.3125,0.22222,0.35897,0.34568
|
||||
hermd001,Hermanson,Dustin,115812,hermd001,hermadu01,195,48.0,74,43,67,2.0,2.0,14.0,5.0,2.0,0.0,0.0,0.0,4.0,5.0,15,12.0,1.0,0.0,0.0,1.0,10,11,11,24,5,14,7.0,18.0,0.16279,0.26866,0.25,0.31081,0.30233,0.38806
|
||||
mlicd001,Mlicki,Dave,119211,mlicd001,mlickda01,569,40.0,74,35,72,3.0,2.0,10.0,4.0,5.0,2.0,1.0,0.0,3.0,5.0,12,5.0,2.0,0.0,4.0,0.0,9,16,13,23,4,12,8.0,19.0,0.22857,0.26389,0.325,0.32432,0.45714,0.48611
|
||||
morgm001,Morgan,Mike,119374,morgm001,morgami01,67,75.0,50,73,49,3.0,3.0,7.0,15.0,3.0,3.0,0.0,2.0,2.0,1.0,9,8.0,1.0,0.0,1.0,0.0,15,14,28,15,19,9,23.0,13.0,0.31507,0.26531,0.32,0.32,0.53425,0.5102
|
||||
milte001,Milton,Eric,132980,milte001,miltoer01,743,32.0,88,29,84,0.0,2.0,15.0,7.0,7.0,2.0,0.0,0.0,6.0,3.0,11,3.0,0.0,0.0,0.0,0.0,14,32,4,17,6,13,11.0,22.0,0.37931,0.2619,0.4375,0.31818,0.65517,0.34524
|
||||
pichh001,Pichardo,Hipolito,120539,pichh001,pichahi01,1472,68.0,52,64,50,2.0,0.0,9.0,8.0,2.0,4.0,0.0,0.0,4.0,9.0,7,8.0,0.0,0.0,0.0,0.0,13,12,26,19,11,8,12.0,13.0,0.1875,0.26,0.30882,0.32692,0.25,0.42
|
||||
tewkb001,Tewksbury,Bob,123213,tewkb001,tewksbo01,1012941,84.0,70,83,71,4.0,1.0,10.0,9.0,4.0,2.0,1.0,1.0,1.0,2.0,7,15.0,0.0,0.0,0.0,0.0,20,17,35,21,12,18,13.0,19.0,0.15663,0.26761,0.17857,0.28571,0.24096,0.52113
|
||||
tromm001,Trombley,Mike,123472,tromm001,trombmi01,758,40.0,46,40,45,1.0,0.0,10.0,4.0,2.0,0.0,0.0,0.0,3.0,3.0,13,11.0,0.0,0.0,0.0,0.0,12,8,11,13,3,6,4.0,13.0,0.1,0.28889,0.175,0.34783,0.1,0.4
|
||||
willw001,Williams,Woody,124315,willw001,williwo02,1190,70.0,55,66,55,2.0,0.0,12.0,7.0,1.0,4.0,0.0,3.0,3.0,8.0,12,13.0,0.0,0.0,0.0,0.0,18,9,10,10,15,15,14.0,15.0,0.21212,0.27273,0.31429,0.32727,0.36364,0.4
|
||||
radkb001,Radke,Brad,120878,radkb001,radkebr01,748,68.0,68,67,66,1.0,1.0,7.0,11.0,3.0,5.0,0.0,0.0,3.0,3.0,18,14.0,0.0,0.0,0.0,0.0,14,10,21,25,11,4,17.0,11.0,0.25373,0.16667,0.29412,0.20588,0.37313,0.25758
|
||||
clemr001,Clemens,Roger,112388,clemr001,clemero02,815,51.0,57,47,53,0.0,0.0,3.0,3.0,3.0,4.0,0.0,0.0,6.0,10.0,16,8.0,1.0,0.0,0.0,0.0,8,8,17,19,7,7,7.0,6.0,0.14894,0.11321,0.33333,0.22807,0.23404,0.16981
|
||||
hawkl001,Hawkins,LaTroy,115629,hawkl001,hawkila01,729,71.0,64,60,58,1.0,2.0,7.0,11.0,2.0,1.0,0.0,1.0,8.0,10.0,10,6.0,1.0,0.0,0.0,0.0,21,18,23,21,6,6,15.0,10.0,0.25,0.17241,0.35211,0.29688,0.4,0.25862
|
||||
hellr001,Helling,Rick,115727,hellr001,helliri01,58,76.0,63,69,64,2.0,1.0,8.0,9.0,0.0,5.0,0.0,1.0,2.0,7.0,10,13.0,0.0,0.0,0.0,0.0,18,16,21,16,6,9,16.0,10.0,0.23188,0.15625,0.30263,0.19048,0.37681,0.25
|
||||
schmj001,Schmidt,Jason,121834,schmj001,schmija01,1131,67.0,77,63,74,3.0,3.0,8.0,11.0,4.0,6.0,1.0,1.0,4.0,2.0,14,9.0,0.0,0.0,1.0,0.0,21,14,24,26,7,10,21.0,16.0,0.33333,0.21622,0.34328,0.25974,0.60317,0.41892
|
||||
stott001,Stottlemyre,Todd,122840,stott001,stottto01,75,84.0,75,77,74,2.0,0.0,12.0,6.0,0.0,4.0,0.0,0.0,3.0,10.0,24,13.0,0.0,1.0,0.0,0.0,9,7,34,23,12,14,10.0,14.0,0.12987,0.18919,0.25,0.22667,0.18182,0.27027
|
||||
oquim001,Oquist,Mike,120039,oquim001,oquismi01,1009828,71.0,51,63,49,1.0,1.0,4.0,13.0,1.0,1.0,0.0,0.0,4.0,10.0,13,13.0,0.0,0.0,0.0,0.0,13,11,19,14,12,2,15.0,6.0,0.2381,0.12245,0.35211,0.19608,0.30159,0.20408
|
||||
loaie001,Loaiza,Esteban,117842,loaie001,loaizes01,1310,56.0,46,51,44,3.0,1.0,5.0,11.0,1.0,2.0,0.0,1.0,3.0,5.0,7,1.0,0.0,1.0,1.0,0.0,15,13,26,17,5,6,15.0,9.0,0.29412,0.20455,0.375,0.26087,0.43137,0.43182
|
||||
sprid001,Springer,Dennis,122618,sprid001,sprinde01,672,62.0,60,57,59,2.0,2.0,8.0,8.0,3.0,4.0,0.0,0.0,3.0,4.0,9,5.0,1.0,0.0,1.0,0.0,16,17,19,15,13,10,14.0,13.0,0.24561,0.22034,0.29032,0.28333,0.42105,0.37288
|
||||
|
@ -25,6 +25,12 @@ logging.basicConfig(
|
||||
level=log_level
|
||||
)
|
||||
|
||||
# Per-Update Parameters
|
||||
SEASON_PCT = 0.1666666
|
||||
START_DATE = 19980101
|
||||
END_DATE = 19980430
|
||||
POST_DATA = False
|
||||
|
||||
RETRO_FILE_PATH = 'data-input/retrosheet/'
|
||||
EVENTS_FILENAME = 'retrosheets_events_1998_short.csv' # Removed last few columns which were throwing dtype errors
|
||||
PERSONNEL_FILENAME = 'retrosheets_personnel.csv'
|
||||
@ -56,11 +62,16 @@ def get_events_by_date(file_path: str, start_date: int, end_date: int) -> pd.Dat
|
||||
return date_plays
|
||||
|
||||
|
||||
def get_result_series(plays: pd.DataFrame, event_type: str, pitcher_hand: Literal['r', 'l'], col_name: str) -> pd.Series:
|
||||
def get_batting_result_series(plays: pd.DataFrame, event_type: str, pitcher_hand: Literal['r', 'l'], col_name: str) -> pd.Series:
|
||||
this_series = plays[(plays.event_type == event_type) & (plays.pitcher_hand == pitcher_hand)].groupby('batter_id').count()['event_type'].astype(int).rename(col_name)
|
||||
return this_series
|
||||
|
||||
|
||||
def get_pitching_result_series(plays: pd.DataFrame, event_type: str, batter_hand: Literal['r', 'l'], col_name: str) -> pd.Series:
|
||||
this_series = plays[(plays.event_type == event_type) & (plays.batter_hand == batter_hand)].groupby('pitcher_id').count()['event_type'].astype(int).rename(col_name)
|
||||
return this_series
|
||||
|
||||
|
||||
def get_run_stat_df(input_path: str):
|
||||
run_data = pd.read_csv(f'{input_path}running.csv') #.set_index('Name-additional'))
|
||||
# if 'Player' in run_data:
|
||||
@ -146,17 +157,37 @@ def get_base_batting_df(all_plays: pd.DataFrame) -> pd.DataFrame:
|
||||
|
||||
pal_series = all_plays[(all_plays.batter_event == 't') & (all_plays.pitcher_hand == 'l')].groupby('batter_id').count()['event_type'].astype(int).rename('PA_vL')
|
||||
bs = pd.concat([bs, pal_series], axis=1)
|
||||
|
||||
par_series = all_plays[(all_plays.batter_event == 't') & (all_plays.pitcher_hand == 'r')].groupby('batter_id').count()['event_type'].astype(int).rename('PA_vR')
|
||||
bs = pd.concat([bs, par_series], axis=1)
|
||||
|
||||
abl_series = all_plays[(all_plays.ab == 't') & (all_plays.pitcher_hand == 'l')].groupby('batter_id').count()['event_type'].astype(int).rename('AB_vL')
|
||||
bs = pd.concat([bs, abl_series], axis=1)
|
||||
|
||||
abr_series = all_plays[(all_plays.ab == 't') & (all_plays.pitcher_hand == 'r')].groupby('batter_id').count()['event_type'].astype(int).rename('AB_vR')
|
||||
bs = pd.concat([bs, abr_series], axis=1)
|
||||
|
||||
return bs.dropna().query(f'PA_vL >= {MIN_PA_VL} & PA_vR >= {MIN_PA_VR}')
|
||||
|
||||
|
||||
def get_base_pitching_df(all_plays: pd.DataFrame) -> pd.DataFrame:
|
||||
ps = get_player_ids(all_plays, 'pitchers')
|
||||
|
||||
tbfl_series = all_plays[(all_plays.batter_event == 't') & (all_plays.batter_hand == 'l')].groupby('pitcher_id').count()['event_type'].astype(int).rename('TBF_vL')
|
||||
ps = pd.concat([ps, tbfl_series], axis=1)
|
||||
|
||||
tbfr_series = all_plays[(all_plays.batter_event == 't') & (all_plays.batter_hand == 'r')].groupby('pitcher_id').count()['event_type'].astype(int).rename('TBF_vR')
|
||||
ps = pd.concat([ps, tbfr_series], axis=1)
|
||||
|
||||
abl_series = all_plays[(all_plays.ab == 't') & (all_plays.batter_hand == 'l')].groupby('pitcher_id').count()['event_type'].astype(int).rename('AB_vL')
|
||||
ps = pd.concat([ps, abl_series], axis=1)
|
||||
|
||||
abr_series = all_plays[(all_plays.ab == 't') & (all_plays.batter_hand == 'r')].groupby('pitcher_id').count()['event_type'].astype(int).rename('AB_vR')
|
||||
ps = pd.concat([ps, abr_series], axis=1)
|
||||
|
||||
return ps.dropna().query(f'TBF_vL >= {MIN_TBF_VL} & TBF_vR >= {MIN_TBF_VR}')
|
||||
|
||||
|
||||
def get_batting_stats_by_date(retro_file_path, start_date: int, end_date: int) -> pd.DataFrame:
|
||||
start = datetime.datetime.now()
|
||||
all_plays = get_events_by_date(retro_file_path, start_date, end_date)
|
||||
@ -189,7 +220,7 @@ def get_batting_stats_by_date(retro_file_path, start_date: int, end_date: int) -
|
||||
('hit by pitch', 'r', 'HBP_vR'),
|
||||
('hit by pitch', 'l', 'HBP_vL')
|
||||
]:
|
||||
this_series = get_result_series(all_plays, event_type, vs_hand, col_name)
|
||||
this_series = get_batting_result_series(all_plays, event_type, vs_hand, col_name)
|
||||
batting_stats[col_name] = this_series
|
||||
print(f'Count basic stats: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
|
||||
@ -335,6 +366,101 @@ def get_batting_stats_by_date(retro_file_path, start_date: int, end_date: int) -
|
||||
return batting_stats
|
||||
|
||||
|
||||
def get_pitching_stats_by_date(retro_file_path, start_date: int, end_date: int) -> pd.DataFrame:
|
||||
start = datetime.datetime.now()
|
||||
all_plays = get_events_by_date(retro_file_path, start_date, end_date)
|
||||
print(f'Pull events: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
|
||||
start = datetime.datetime.now()
|
||||
pitching_stats = get_base_pitching_df(all_plays)
|
||||
print(f'Get base dataframe: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
|
||||
start = datetime.datetime.now()
|
||||
all_player_ids = pitching_stats['key_retro']
|
||||
all_plays = all_plays[all_plays['pitcher_id'].isin(all_player_ids)]
|
||||
print(f'Shrink all_plays: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
|
||||
# Basic counting stats
|
||||
start = datetime.datetime.now()
|
||||
for event_type, vs_hand, col_name in [
|
||||
('home run', 'r', 'HR_vR'),
|
||||
('home run', 'l', 'HR_vL'),
|
||||
('single', 'r', '1B_vR'),
|
||||
('single', 'l', '1B_vL'),
|
||||
('double', 'r', '2B_vR'),
|
||||
('double', 'l', '2B_vL'),
|
||||
('triple', 'r', '3B_vR'),
|
||||
('triple', 'l', '3B_vL'),
|
||||
('walk', 'r', 'BB_vR'),
|
||||
('walk', 'l', 'BB_vL'),
|
||||
('strikeout', 'r', 'SO_vR'),
|
||||
('strikeout', 'l', 'SO_vL'),
|
||||
('hit by pitch', 'r', 'HBP_vR'),
|
||||
('hit by pitch', 'l', 'HBP_vL'),
|
||||
('intentional walk', 'l', 'IBB_vL'),
|
||||
('intentional walk', 'r', 'IBB_vR')
|
||||
]:
|
||||
this_series = get_pitching_result_series(all_plays, event_type, vs_hand, col_name)
|
||||
pitching_stats[col_name] = this_series
|
||||
print(f'Count basic stats: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
pitching_stats = pitching_stats.fillna(0)
|
||||
|
||||
# Bespoke counting stats
|
||||
start = datetime.datetime.now()
|
||||
def get_fb_vl(row):
|
||||
return all_plays[(all_plays.pitcher_id == row['key_retro']) & (all_plays.batted_ball_type == 'f') & (all_plays.batter_hand == 'l')].count()['event_type'].astype(int)
|
||||
def get_fb_vr(row):
|
||||
return all_plays[(all_plays.pitcher_id == row['key_retro']) & (all_plays.batted_ball_type == 'f') & (all_plays.batter_hand == 'r')].count()['event_type'].astype(int)
|
||||
|
||||
def get_gb_vl(row):
|
||||
return all_plays[(all_plays.pitcher_id == row['key_retro']) & (all_plays.batted_ball_type == 'G') & (all_plays.batter_hand == 'l')].count()['event_type'].astype(int)
|
||||
def get_gb_vr(row):
|
||||
return all_plays[(all_plays.pitcher_id == row['key_retro']) & (all_plays.batted_ball_type == 'G') & (all_plays.batter_hand == 'r')].count()['event_type'].astype(int)
|
||||
|
||||
def get_ld_vl(row):
|
||||
return all_plays[(all_plays.pitcher_id == row['key_retro']) & (all_plays.batted_ball_type == 'l') & (all_plays.batter_hand == 'l')].count()['event_type'].astype(int)
|
||||
def get_ld_vr(row):
|
||||
return all_plays[(all_plays.pitcher_id == row['key_retro']) & (all_plays.batted_ball_type == 'l') & (all_plays.batter_hand == 'r')].count()['event_type'].astype(int)
|
||||
|
||||
pitching_stats['FB_vL'] = pitching_stats.apply(get_fb_vl, axis=1)
|
||||
pitching_stats['FB_vR'] = pitching_stats.apply(get_fb_vr, axis=1)
|
||||
|
||||
pitching_stats['GB_vL'] = pitching_stats.apply(get_gb_vl, axis=1)
|
||||
pitching_stats['GB_vR'] = pitching_stats.apply(get_gb_vr, axis=1)
|
||||
|
||||
# pitching_stats['LD_vL'] = pitching_stats.apply(get_ld_vl, axis=1)
|
||||
# pitching_stats['LD_vR'] = pitching_stats.apply(get_ld_vr, axis=1)
|
||||
|
||||
pitching_stats['H_vL'] = pitching_stats['1B_vL'] + pitching_stats['2B_vL'] + pitching_stats['3B_vL'] + pitching_stats['HR_vL']
|
||||
pitching_stats['H_vR'] = pitching_stats['1B_vR'] + pitching_stats['2B_vR'] + pitching_stats['3B_vR'] + pitching_stats['HR_vR']
|
||||
|
||||
print(f'Custom counting stats: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
|
||||
# Calculated Fields
|
||||
"""
|
||||
Hard%_vL & R
|
||||
Med%_vL & R
|
||||
Soft%_vL & R
|
||||
HR/FB_vL & R
|
||||
Oppo%_vL & R
|
||||
"""
|
||||
start = datetime.datetime.now()
|
||||
pitching_stats['AVG_vL'] = round(pitching_stats['H_vL'] / pitching_stats['AB_vL'], 5)
|
||||
pitching_stats['AVG_vR'] = round(pitching_stats['H_vR'] / pitching_stats['AB_vR'], 5)
|
||||
|
||||
pitching_stats['OBP_vL'] = round((pitching_stats['H_vL'] + pitching_stats['BB_vL'] + pitching_stats['HBP_vL']) / pitching_stats['TBF_vL'], 5)
|
||||
pitching_stats['OBP_vR'] = round((pitching_stats['H_vR'] + pitching_stats['BB_vR'] + pitching_stats['HBP_vR']) / pitching_stats['TBF_vR'], 5)
|
||||
|
||||
pitching_stats['SLG_vL'] = round((pitching_stats['1B_vL'] + pitching_stats['2B_vL'] * 2 + pitching_stats['3B_vL'] * 3 + pitching_stats['HR_vL'] * 4) / pitching_stats['AB_vL'], 5)
|
||||
pitching_stats['SLG_vR'] = round((pitching_stats['1B_vR'] + pitching_stats['2B_vR'] * 2 + pitching_stats['3B_vR'] * 3 + pitching_stats['HR_vR'] * 4) / pitching_stats['AB_vR'], 5)
|
||||
|
||||
pitching_stats = pitching_stats.fillna(0)
|
||||
|
||||
print(f'Calculated fields: {(datetime.datetime.now() - start).total_seconds():.2f}s')
|
||||
|
||||
return pitching_stats
|
||||
|
||||
|
||||
def calc_batting_cards(bs: pd.DataFrame, season_pct: float) -> pd.DataFrame:
|
||||
def create_batting_card(row):
|
||||
steal_data = cba.stealing(
|
||||
@ -580,85 +706,90 @@ def calc_positions(bs: pd.DataFrame) -> pd.DataFrame:
|
||||
return pos_df
|
||||
|
||||
|
||||
async def get_or_post_players(stat_df: pd.DataFrame, bat_card_df: pd.DataFrame, bat_rat_df: pd.DataFrame, def_rat_df: pd.DataFrame) -> pd.DataFrame:
|
||||
async def get_or_post_players(bstat_df: pd.DataFrame = None, bat_rat_df: pd.DataFrame = None, def_rat_df: pd.DataFrame = None, pstat_df: pd.DataFrame = None, pit_rat_df: pd.DataFrame = None) -> pd.DataFrame:
|
||||
# Refactor this to support batters or pitchers, make stat dfs optional and send to getorpostbatters/getorpostpitchers
|
||||
all_players = []
|
||||
|
||||
dev_count = 0
|
||||
for index, row in stat_df.iterrows():
|
||||
if dev_count < 0:
|
||||
break
|
||||
if bstat_df is not None and bat_rat_df is not None and def_rat_df is not None:
|
||||
for index, row in bstat_df.iterrows():
|
||||
if dev_count < 0:
|
||||
break
|
||||
|
||||
p_query = await db_get('players', params=[('bbref_id', row["key_bbref"]), ('cardset_id', CARDSET_ID)])
|
||||
if p_query['count'] > 0:
|
||||
this_record = p_query['players'][0]
|
||||
# if 'id' in this_record:
|
||||
# player_id = this_record['id']
|
||||
# else:
|
||||
# player_id = this_record['player_id']
|
||||
|
||||
# all_bbref_ids.append(row['key_bbref'])
|
||||
# all_player_ids.append(player_id)
|
||||
all_players.append(this_record)
|
||||
else:
|
||||
mlb_query = await db_get('mlbplayers', params=[('key_retro', row['key_retro'])])
|
||||
if mlb_query['count'] > 0:
|
||||
mlb_player = mlb_query['players'][0]
|
||||
p_query = await db_get('players', params=[('bbref_id', row["key_bbref"]), ('cardset_id', CARDSET_ID)])
|
||||
if p_query['count'] > 0:
|
||||
this_record = p_query['players'][0]
|
||||
# if 'id' in this_record:
|
||||
# player_id = this_record['id']
|
||||
# else:
|
||||
# player_id = this_record['player_id']
|
||||
|
||||
# all_bbref_ids.append(row['key_bbref'])
|
||||
# all_player_ids.append(player_id)
|
||||
all_players.append(this_record)
|
||||
else:
|
||||
mlb_player = await db_post(
|
||||
'mlbplayers/one',
|
||||
payload={
|
||||
'first_name': row['use_name'],
|
||||
'last_name': row['last_name'],
|
||||
'key_mlbam': row['key_mlbam'],
|
||||
'key_fangraphs': row['key_fangraphs'],
|
||||
'key_bbref': row['key_bbref'],
|
||||
'key_retro': row['key_retro']
|
||||
}
|
||||
)
|
||||
|
||||
player_payload = {
|
||||
'p_name': f'{row["use_name"]} {row["last_name"]}',
|
||||
'cost': f'{bat_rat_df.loc[row['key_bbref']]["cost"]}',
|
||||
'image': f'change-me',
|
||||
'mlbclub': CLUB_LIST[row['Tm']],
|
||||
'franchise': FRANCHISE_LIST[row['Tm']],
|
||||
'cardset_id': CARDSET_ID,
|
||||
'set_num': int(float(row['key_fangraphs'])),
|
||||
'rarity_id': int(bat_rat_df.loc[row['key_bbref']]['rarity_id']),
|
||||
'description': PLAYER_DESCRIPTION,
|
||||
'bbref_id': row['key_bbref'],
|
||||
'fangr_id': row['key_fangraphs'],
|
||||
'mlbplayer_id': mlb_player['id']
|
||||
}
|
||||
|
||||
try:
|
||||
count = 1
|
||||
all_pos = def_rat_df.loc[row['key_bbref']].sort_values(by='innings', ascending=False)
|
||||
for index, pos_row in all_pos.iterrows():
|
||||
player_payload[f'pos_{count}'] = pos_row.position
|
||||
count += 1
|
||||
except KeyError:
|
||||
logging.info(f'No positions found for {row['use_name']} {row['last_name']}')
|
||||
player_payload['pos_1'] = 'DH'
|
||||
except TypeError:
|
||||
logging.info(f'Only one position found for {row['use_name']} {row['last_name']}')
|
||||
player_payload['pos_1'] = def_rat_df.loc[row['key_bbref']].position
|
||||
mlb_query = await db_get('mlbplayers', params=[('key_retro', row['key_retro'])])
|
||||
if mlb_query['count'] > 0:
|
||||
mlb_player = mlb_query['players'][0]
|
||||
else:
|
||||
mlb_player = await db_post(
|
||||
'mlbplayers/one',
|
||||
payload={
|
||||
'first_name': row['use_name'],
|
||||
'last_name': row['last_name'],
|
||||
'key_mlbam': row['key_mlbam'],
|
||||
'key_fangraphs': row['key_fangraphs'],
|
||||
'key_bbref': row['key_bbref'],
|
||||
'key_retro': row['key_retro']
|
||||
}
|
||||
)
|
||||
|
||||
player_payload = {
|
||||
'p_name': f'{row["use_name"]} {row["last_name"]}',
|
||||
'cost': f'{bat_rat_df.loc[row['key_bbref']]["cost"]}',
|
||||
'image': f'change-me',
|
||||
'mlbclub': CLUB_LIST[row['Tm']],
|
||||
'franchise': FRANCHISE_LIST[row['Tm']],
|
||||
'cardset_id': CARDSET_ID,
|
||||
'set_num': int(float(row['key_fangraphs'])),
|
||||
'rarity_id': int(bat_rat_df.loc[row['key_bbref']]['rarity_id']),
|
||||
'description': PLAYER_DESCRIPTION,
|
||||
'bbref_id': row['key_bbref'],
|
||||
'fangr_id': row['key_fangraphs'],
|
||||
'mlbplayer_id': mlb_player['id']
|
||||
}
|
||||
|
||||
try:
|
||||
count = 1
|
||||
all_pos = def_rat_df.loc[row['key_bbref']].sort_values(by='innings', ascending=False)
|
||||
for index, pos_row in all_pos.iterrows():
|
||||
player_payload[f'pos_{count}'] = pos_row.position
|
||||
count += 1
|
||||
except KeyError:
|
||||
logging.info(f'No positions found for {row['use_name']} {row['last_name']}')
|
||||
player_payload['pos_1'] = 'DH'
|
||||
except TypeError:
|
||||
logging.info(f'Only one position found for {row['use_name']} {row['last_name']}')
|
||||
player_payload['pos_1'] = def_rat_df.loc[row['key_bbref']].position
|
||||
|
||||
new_player = await db_post('players', payload=player_payload)
|
||||
new_player = await db_post('players', payload=player_payload)
|
||||
|
||||
if 'id' in new_player:
|
||||
player_id = new_player['id']
|
||||
else:
|
||||
player_id = new_player['player_id']
|
||||
if 'id' in new_player:
|
||||
player_id = new_player['id']
|
||||
else:
|
||||
player_id = new_player['player_id']
|
||||
|
||||
await db_patch('players', object_id=player_id, params=[('image', f'{CARD_BASE_URL}{player_id}/battingcard{urllib.parse.quote("?d=")}{RELEASE_DIRECTORY}')])
|
||||
|
||||
# all_bbref_ids.append(row['key_bbref'])
|
||||
# all_player_ids.append(player_id)
|
||||
all_players.append(new_player)
|
||||
await db_patch('players', object_id=player_id, params=[('image', f'{CARD_BASE_URL}{player_id}/battingcard{urllib.parse.quote("?d=")}{RELEASE_DIRECTORY}')])
|
||||
|
||||
# all_bbref_ids.append(row['key_bbref'])
|
||||
# all_player_ids.append(player_id)
|
||||
all_players.append(new_player)
|
||||
|
||||
dev_count += 1
|
||||
dev_count += 1
|
||||
elif pstat_df is not Noen and pit_rat_df is not None and def_rat_df is not None:
|
||||
pass
|
||||
else:
|
||||
raise KeyError(f'Could not get players - not enough stat DFs were supplied')
|
||||
|
||||
players_df = pd.DataFrame(all_players).set_index('bbref_id')
|
||||
return players_df
|
||||
@ -848,16 +979,50 @@ async def run_batters(data_input_path: str, start_date: int, end_date: int, post
|
||||
return batting_stats
|
||||
|
||||
|
||||
async def run_pitchers(data_input_path: str, start_date: int, end_date: int, post_data: bool = False, season_pct: float = 1.0):
|
||||
# Get pitching stats
|
||||
pitching_stats = get_pitching_stats_by_date(f'{RETRO_FILE_PATH}{EVENTS_FILENAME}', start_date=start_date, end_date=end_date)
|
||||
|
||||
# Get peripheral stats
|
||||
|
||||
# Calculate pitching cards
|
||||
|
||||
# Calculate defense ratings
|
||||
|
||||
# Post all data
|
||||
if post_data:
|
||||
print(f'Posting player data...')
|
||||
post_start = datetime.datetime.now()
|
||||
num_players = await post_pitcher_data()
|
||||
post_end = datetime.datetime.now()
|
||||
|
||||
print(f'Post player data: {(post_end - post_start).total_seconds()}s')
|
||||
|
||||
post_msg = f'Posted {num_players} players to the database'
|
||||
logging.info(post_msg)
|
||||
print(post_msg)
|
||||
else:
|
||||
post_msg = f'Players are NOT being posted to the database'
|
||||
logging.warning(post_msg)
|
||||
print(post_msg)
|
||||
|
||||
return pitching_stats
|
||||
|
||||
|
||||
async def main(args):
|
||||
batter_start = datetime.datetime.now()
|
||||
batting_stats = await run_batters(f'{DATA_INPUT_FILE_PATH}', start_date=19980101, end_date=19980430, post_data=True, season_pct=0.16666667)
|
||||
batting_stats.to_csv(f'batting_stats.csv')
|
||||
batter_end = datetime.datetime.now()
|
||||
# batter_start = datetime.datetime.now()
|
||||
# batting_stats = await run_batters(f'{DATA_INPUT_FILE_PATH}', start_date=START_DATE, end_date=END_DATE, post_data=POST_DATA, season_pct=SEASON_PCT)
|
||||
# batting_stats.to_csv(f'batting_stats.csv')
|
||||
# batter_end = datetime.datetime.now()
|
||||
# print(f'\n\nBatter time: {(batter_end - batter_start).total_seconds():.2f}s')
|
||||
|
||||
pitcher_start = datetime.datetime.now()
|
||||
pitching_stats = await run_pitchers(f'{DATA_INPUT_FILE_PATH}', start_date=START_DATE, end_date=END_DATE, post_data=POST_DATA, season_pct=SEASON_PCT)
|
||||
pitching_stats.to_csv(f'pitching_stats.csv')
|
||||
pitcher_end = datetime.datetime.now()
|
||||
print(f'\n\Pitcher time: {(pitcher_end - pitcher_start).total_seconds():.2f}s')
|
||||
|
||||
print(f'\n\nBatter time: {(batter_end - batter_start).total_seconds():.2f}s \nPitcher time: {(pitcher_end - pitcher_start).total_seconds():.2f}s\nTotal: {(pitcher_end - batter_start).total_seconds():.2f}s\n\nDone!')
|
||||
# print(f'Total: {(pitcher_end - batter_start).total_seconds():.2f}s\n\nDone!')
|
||||
|
||||
# await store_defense_to_csv(1998)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user