Multichem commited on
Commit
2720fe3
·
verified ·
1 Parent(s): 1cb80c7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +131 -2
app.py CHANGED
@@ -130,6 +130,46 @@ def hitter_seasonlong_build(data_sample):
130
 
131
  return season_long_table
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  @st.cache_data(show_spinner=False)
134
  def pitcher_seasonlong_build(data_sample):
135
  season_long_table = data_sample[['Player', 'Team']]
@@ -197,6 +237,73 @@ def pitcher_seasonlong_build(data_sample):
197
 
198
  return season_long_table
199
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  @st.cache_data(show_spinner=False)
201
  def split_frame(input_df, rows):
202
  df = [input_df.loc[i : i + rows - 1, :] for i in range(0, len(input_df), rows)]
@@ -275,7 +382,7 @@ with tab1:
275
  total_pitchers = indv_pitchers.Player.values.tolist()
276
  total_dates = hitter_gamelog_table.Date.values.tolist()
277
 
278
- split_var1 = st.radio("What table would you like to view?", ('Season Logs', 'Gamelogs'), key='split_var1')
279
  split_var2 = st.radio("Would you like to view all teams or specific ones?", ('All', 'Specific Teams'), key='split_var2')
280
 
281
  if split_var2 == 'Specific Teams':
@@ -328,7 +435,29 @@ with tab1:
328
  mime='text/csv',
329
  )
330
 
331
- elif split_var1 == 'Gamelogs':
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
  choose_cols = st.container()
333
  with choose_cols:
334
  choose_disp_gamelog = st.multiselect('Which stats would you like to view?', options = hitter_data_cols, default = hitter_data_cols, key='choose_disp_gamelog')
 
130
 
131
  return season_long_table
132
 
133
+ @st.cache_data(show_spinner=False)
134
+ def hitter_team_build(data_sample):
135
+ season_long_table = data_sample[['Team']]
136
+ season_long_table['G'] = data_sample.groupby(['Team'], sort=False)['G'].transform('sum').astype(int)
137
+ season_long_table['AB'] = data_sample.groupby(['Team'], sort=False)['AB'].transform('sum').astype(int)
138
+ season_long_table['PA'] = data_sample.groupby(['Team'], sort=False)['PA'].transform('sum').astype(int)
139
+ season_long_table['H'] = data_sample.groupby(['Team'], sort=False)['H'].transform('sum').astype(int)
140
+ season_long_table['1B'] = data_sample.groupby(['Team'], sort=False)['1B'].transform('sum').astype(int)
141
+ season_long_table['2B'] = data_sample.groupby(['Team'], sort=False)['2B'].transform('sum').astype(int)
142
+ season_long_table['3B'] = data_sample.groupby(['Team'], sort=False)['3B'].transform('sum').astype(int)
143
+ season_long_table['HR'] = data_sample.groupby(['Team'], sort=False)['HR'].transform('sum').astype(int)
144
+ season_long_table['R'] = data_sample.groupby(['Team'], sort=False)['R'].transform('sum').astype(int)
145
+ season_long_table['RBI'] = data_sample.groupby(['Team'], sort=False)['RBI'].transform('sum').astype(int)
146
+ season_long_table['BB'] = data_sample.groupby(['Team'], sort=False)['BB'].transform('sum').astype(int)
147
+ season_long_table['IBB'] = data_sample.groupby(['Team'], sort=False)['IBB'].transform('sum').astype(int)
148
+ season_long_table['SO'] = data_sample.groupby(['Team'], sort=False)['SO'].transform('sum').astype(int)
149
+ season_long_table['HBP'] = data_sample.groupby(['Team'], sort=False)['HBP'].transform('sum').astype(int)
150
+ season_long_table['SF'] = data_sample.groupby(['Team'], sort=False)['SF'].transform('sum').astype(int)
151
+ season_long_table['SH'] = data_sample.groupby(['Team'], sort=False)['SH'].transform('sum').astype(int)
152
+ season_long_table['GDP'] = data_sample.groupby(['Team'], sort=False)['GDP'].transform('sum').astype(int)
153
+ season_long_table['SB'] = data_sample.groupby(['Team'], sort=False)['SB'].transform('sum').astype(int)
154
+ season_long_table['CS'] = data_sample.groupby(['Team'], sort=False)['CS'].transform('sum').astype(int)
155
+ season_long_table['Avg AVG'] = data_sample.groupby(['Team'], sort=False)['AVG'].transform('mean').astype(float)
156
+ season_long_table['Avg SLG'] = data_sample.groupby(['Team'], sort=False)['SLG'].transform('mean').astype(float)
157
+ season_long_table['Avg wRC+'] = data_sample.groupby(['Team'], sort=False)['wRC+'].transform('mean').astype(float)
158
+ season_long_table['Avg LD%'] = data_sample.groupby(['Team'], sort=False)['LD%'].transform('mean').astype(float)
159
+ season_long_table['Avg GB%'] = data_sample.groupby(['Team'], sort=False)['GB%'].transform('mean').astype(float)
160
+ season_long_table['Avg FB%'] = data_sample.groupby(['Team'], sort=False)['FB%'].transform('mean').astype(float)
161
+ season_long_table['Avg Hard%'] = data_sample.groupby(['Team'], sort=False)['Hard%'].transform('mean').astype(float)
162
+ season_long_table['Barrels'] = data_sample.groupby(['Team'], sort=False)['Barrels'].transform('sum').astype(int)
163
+ season_long_table['Avg Barrel%'] = data_sample.groupby(['Team'], sort=False)['Barrel%'].transform('mean').astype(float)
164
+ season_long_table = season_long_table.drop_duplicates(subset='Team')
165
+
166
+ season_long_table = season_long_table.sort_values(by='Avg wRC+', ascending=False)
167
+
168
+ season_long_table = season_long_table.set_axis(['Team', 'G', 'AB', 'PA', 'H', '1B', '2B', '3B', 'HR', 'R', 'RBI', 'BB', 'IBB', 'SO', 'HBP', 'SF', 'SH',
169
+ 'GDP', 'SB', 'CS', 'Avg AVG', 'Avg SLG', 'Avg wRC+', 'Avg LD%', 'Avg GB%', 'Avg FB%', 'Avg Hard%', 'Barrels', 'Avg Barrel%'], axis=1)
170
+
171
+ return season_long_table
172
+
173
  @st.cache_data(show_spinner=False)
174
  def pitcher_seasonlong_build(data_sample):
175
  season_long_table = data_sample[['Player', 'Team']]
 
237
 
238
  return season_long_table
239
 
240
+ @st.cache_data(show_spinner=False)
241
+ def pitcher_team_build(data_sample):
242
+ season_long_table = data_sample[['Team']]
243
+ season_long_table['G'] = data_sample.groupby(['Team'], sort=False)['G'].transform('sum').astype(int)
244
+ season_long_table['GS'] = data_sample.groupby(['Team'], sort=False)['GS'].transform('sum').astype(int)
245
+ season_long_table['CG'] = data_sample.groupby(['Team'], sort=False)['CG'].transform('sum').astype(int)
246
+ season_long_table['W'] = data_sample.groupby(['Team'], sort=False)['W'].transform('sum').astype(int)
247
+ season_long_table['L'] = data_sample.groupby(['Team'], sort=False)['L'].transform('sum').astype(int)
248
+ season_long_table['Avg ERA'] = data_sample.groupby(['Team'], sort=False)['ERA'].transform('mean').astype(float)
249
+ season_long_table['ShO'] = data_sample.groupby(['Team'], sort=False)['ShO'].transform('sum').astype(int)
250
+ season_long_table['SV'] = data_sample.groupby(['Team'], sort=False)['SV'].transform('sum').astype(int)
251
+ season_long_table['HLD'] = data_sample.groupby(['Team'], sort=False)['HLD'].transform('sum').astype(int)
252
+ season_long_table['BS'] = data_sample.groupby(['Team'], sort=False)['BS'].transform('sum').astype(int)
253
+ season_long_table['IP'] = data_sample.groupby(['Team'], sort=False)['IP'].transform('sum').astype(int)
254
+ season_long_table['TBF'] = data_sample.groupby(['Team'], sort=False)['TBF'].transform('sum').astype(int)
255
+ season_long_table['H'] = data_sample.groupby(['Team'], sort=False)['H'].transform('sum').astype(int)
256
+ season_long_table['R'] = data_sample.groupby(['Team'], sort=False)['R'].transform('sum').astype(int)
257
+ season_long_table['ER'] = data_sample.groupby(['Team'], sort=False)['ER'].transform('sum').astype(int)
258
+ season_long_table['HR'] = data_sample.groupby(['Team'], sort=False)['HR'].transform('sum').astype(int)
259
+ season_long_table['BB'] = data_sample.groupby(['Team'], sort=False)['BB'].transform('sum').astype(int)
260
+ season_long_table['IBB'] = data_sample.groupby(['Team'], sort=False)['IBB'].transform('sum').astype(int)
261
+ season_long_table['HBP'] = data_sample.groupby(['Team'], sort=False)['HBP'].transform('sum').astype(int)
262
+ season_long_table['WP'] = data_sample.groupby(['Team'], sort=False)['WP'].transform('sum').astype(int)
263
+ season_long_table['BK'] = data_sample.groupby(['Team'], sort=False)['BK'].transform('sum').astype(int)
264
+ season_long_table['SO'] = data_sample.groupby(['Team'], sort=False)['SO'].transform('sum').astype(int)
265
+ season_long_table['Avg K/9'] = data_sample.groupby(['Team'], sort=False)['K/9'].transform('mean').astype(float)
266
+ season_long_table['Avg BB/9'] = data_sample.groupby(['Team'], sort=False)['BB/9'].transform('mean').astype(float)
267
+ season_long_table['Avg WHIP'] = data_sample.groupby(['Team'], sort=False)['WHIP'].transform('mean').astype(float)
268
+ season_long_table['Avg BABIP'] = data_sample.groupby(['Team'], sort=False)['BABIP'].transform('mean').astype(float)
269
+ season_long_table['Avg LOB%'] = data_sample.groupby(['Team'], sort=False)['LOB%'].transform('mean').astype(int)
270
+ season_long_table['Avg FIP'] = data_sample.groupby(['Team'], sort=False)['FIP'].transform('mean').astype(float)
271
+ season_long_table['Avg xFIP'] = data_sample.groupby(['Team'], sort=False)['xFIP'].transform('mean').astype(float)
272
+ season_long_table['Avg K%'] = data_sample.groupby(['Team'], sort=False)['K%'].transform('mean').astype(float)
273
+ season_long_table['Avg BB%'] = data_sample.groupby(['Team'], sort=False)['BB%'].transform('mean').astype(float)
274
+ season_long_table['Avg SIERA'] = data_sample.groupby(['Team'], sort=False)['SIERA'].transform('mean').astype(float)
275
+ season_long_table['Avg LD%'] = data_sample.groupby(['Team'], sort=False)['LD%'].transform('mean').astype(float)
276
+ season_long_table['Avg GB%'] = data_sample.groupby(['Team'], sort=False)['GB%'].transform('mean').astype(float)
277
+ season_long_table['Avg FB%'] = data_sample.groupby(['Team'], sort=False)['FB%'].transform('mean').astype(float)
278
+ season_long_table['Avg HR/FB'] = data_sample.groupby(['Team'], sort=False)['HR/FB'].transform('mean').astype(float)
279
+ season_long_table['Avg Hard%'] = data_sample.groupby(['Team'], sort=False)['Hard%'].transform('mean').astype(float)
280
+ season_long_table['Barrels'] = data_sample.groupby(['Team'], sort=False)['Barrels'].transform('sum').astype(int)
281
+ season_long_table['Avg Barrel%'] = data_sample.groupby(['Team'], sort=False)['Barrel%'].transform('mean').astype(float)
282
+ season_long_table['Avg xERA'] = data_sample.groupby(['Team'], sort=False)['xERA'].transform('mean').astype(float)
283
+ season_long_table['Avg vFA'] = data_sample.groupby(['Team'], sort=False)['vFA'].transform('mean').astype(float)
284
+ season_long_table['Avg vFT'] = data_sample.groupby(['Team'], sort=False)['vFT'].transform('mean').astype(float)
285
+ season_long_table['Avg vFC'] = data_sample.groupby(['Team'], sort=False)['vFC'].transform('mean').astype(float)
286
+ season_long_table['Avg vFS'] = data_sample.groupby(['Team'], sort=False)['vFS'].transform('mean').astype(float)
287
+ season_long_table['Avg vFO'] = data_sample.groupby(['Team'], sort=False)['vFO'].transform('mean').astype(float)
288
+ season_long_table['Avg vSI'] = data_sample.groupby(['Team'], sort=False)['vSI'].transform('mean').astype(float)
289
+ season_long_table['Avg vSL'] = data_sample.groupby(['Team'], sort=False)['vSL'].transform('mean').astype(float)
290
+ season_long_table['Avg vCU'] = data_sample.groupby(['Team'], sort=False)['vCU'].transform('mean').astype(float)
291
+ season_long_table['Avg vKC'] = data_sample.groupby(['Team'], sort=False)['vKC'].transform('mean').astype(float)
292
+ season_long_table['Avg vEP'] = data_sample.groupby(['Team'], sort=False)['vEP'].transform('mean').astype(float)
293
+ season_long_table['Avg vCH'] = data_sample.groupby(['Team'], sort=False)['vCH'].transform('mean').astype(float)
294
+ season_long_table['Avg vSC'] = data_sample.groupby(['Team'], sort=False)['vSC'].transform('mean').astype(float)
295
+ season_long_table['Avg vKN'] = data_sample.groupby(['Team'], sort=False)['vKN'].transform('mean').astype(float)
296
+ season_long_table = season_long_table.drop_duplicates(subset='Team')
297
+
298
+ season_long_table = season_long_table.sort_values(by='SO', ascending=False)
299
+
300
+ season_long_table = season_long_table.set_axis(['Team', 'G', 'GS', 'CG', 'W', 'L', 'Avg ERA', 'ShO', 'SV', 'HLD', 'BS', 'IP', 'TBF', 'H', 'R', 'ER', 'HR',
301
+ 'BB', 'IBB', 'HBP', 'WP', 'BK', 'SO', 'Avg K/9', 'Avg BB/9', 'Avg WHIP', 'Avg BABIP', 'Avg LOB%', 'Avg FIP', 'Avg xFIP', 'Avg K%',
302
+ 'Avg BB%', 'Avg SIERA', 'Avg LD%', 'Avg GB%', 'Avg FB%', 'Avg HR/FB', 'Avg Hard%', 'Barrels', 'Avg Barrel%', 'Avg xERA', 'Avg vFA',
303
+ 'Avg vFT', 'Avg vFC', 'Avg vFS', 'Avg vFO', 'Avg vSI', 'Avg vSL', 'Avg vCU', 'Avg vKC', 'Avg vEP', 'Avg vCH', 'Avg vSC', 'Avg vKN'], axis=1)
304
+
305
+ return season_long_table
306
+
307
  @st.cache_data(show_spinner=False)
308
  def split_frame(input_df, rows):
309
  df = [input_df.loc[i : i + rows - 1, :] for i in range(0, len(input_df), rows)]
 
382
  total_pitchers = indv_pitchers.Player.values.tolist()
383
  total_dates = hitter_gamelog_table.Date.values.tolist()
384
 
385
+ split_var1 = st.radio("What table would you like to view?", ('Season Logs', 'Game logs', 'Team Logs'), key='split_var1')
386
  split_var2 = st.radio("Would you like to view all teams or specific ones?", ('All', 'Specific Teams'), key='split_var2')
387
 
388
  if split_var2 == 'Specific Teams':
 
435
  mime='text/csv',
436
  )
437
 
438
+ elif split_var1 == 'Team Logs':
439
+ choose_cols = st.container()
440
+ with choose_cols:
441
+ choose_disp = st.multiselect('Which stats would you like to view?', options = season_hitter_data_cols, default = season_hitter_data_cols, key='col_display')
442
+ disp_stats = basic_season_cols + choose_disp
443
+ display = st.container()
444
+ working_data = working_data[working_data['Date'] >= low_date]
445
+ working_data = working_data[working_data['Date'] <= high_date]
446
+ working_data = working_data[working_data['Team'].isin(team_var1)]
447
+ team_table = hitter_team_build(working_data)
448
+ team_table = team_table.set_index('Team')
449
+
450
+ team_table_disp = team_table.reindex(disp_stats,axis="columns")
451
+ team_table_disp = team_table_disp.drop(['Team', 'Date'], axis=1)
452
+ display.dataframe(team_table_disp.style.format(precision=2), height=750, use_container_width = True)
453
+ st.download_button(
454
+ label="Export hitter team logs Model",
455
+ data=convert_df_to_csv(season_long_table),
456
+ file_name='Seasonlogs_Hitter_View.csv',
457
+ mime='text/csv',
458
+ )
459
+
460
+ elif split_var1 == 'Game logs':
461
  choose_cols = st.container()
462
  with choose_cols:
463
  choose_disp_gamelog = st.multiselect('Which stats would you like to view?', options = hitter_data_cols, default = hitter_data_cols, key='choose_disp_gamelog')