James McCool commited on
Commit
9628f53
·
1 Parent(s): e8f9f9f

Enhance VORP scoring in Streamlit app by returning an additional original rank dictionary, improving player ranking accuracy and enabling better mapping of scoring ranks in the final output.

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +4 -2
src/streamlit_app.py CHANGED
@@ -382,8 +382,9 @@ def assign_vorp_scoring(frame: pd.DataFrame, halfPpr_rv: dict, custom_rv: dict,
382
  vorp_frame['pos_rank'] = vorp_frame.groupby('Pos')['custom_rank'].rank(method='first', ascending=True).astype(int)
383
  vorp_frame['pos_designation'] = vorp_frame['Pos'] + vorp_frame['pos_rank'].astype(str)
384
  pos_des_dict = dict(zip(vorp_frame['pos_designation'], vorp_frame['Name']))
 
385
 
386
- return pos_des_dict
387
 
388
  def assign_vorp_roster(frame: pd.DataFrame, halfPpr_rv: dict, custom_rv: dict, league_settings: dict, pos_vorp_limiters: dict) -> pd.DataFrame:
389
  if league_settings['TYPE'] == 'Half PPR':
@@ -444,9 +445,10 @@ def main():
444
  custom_roster_rv = create_custom_rv(position_df, custom_pos_reqs, user_league_settings)
445
 
446
  # Calculate VORP and rankings
447
- pos_des_dict = assign_vorp_scoring(position_df, halfPpr_rv, custom_scoring_rv, user_league_settings, user_pos_vorp_limiters)
448
  final_df = assign_vorp_roster(position_df, halfPpr_rv, custom_roster_rv, user_league_settings, user_pos_vorp_limiters)
449
  final_df = final_df.drop(columns=['SR_ID'], axis=1)
 
450
  final_df['pos_lock_name'] = final_df['pos_designation'].map(pos_des_dict)
451
 
452
  # Display results
 
382
  vorp_frame['pos_rank'] = vorp_frame.groupby('Pos')['custom_rank'].rank(method='first', ascending=True).astype(int)
383
  vorp_frame['pos_designation'] = vorp_frame['Pos'] + vorp_frame['pos_rank'].astype(str)
384
  pos_des_dict = dict(zip(vorp_frame['pos_designation'], vorp_frame['Name']))
385
+ orig_rank_dict = dict(zip(vorp_frame['Name'], vorp_frame['pos_designation']))
386
 
387
+ return pos_des_dict, orig_rank_dict
388
 
389
  def assign_vorp_roster(frame: pd.DataFrame, halfPpr_rv: dict, custom_rv: dict, league_settings: dict, pos_vorp_limiters: dict) -> pd.DataFrame:
390
  if league_settings['TYPE'] == 'Half PPR':
 
445
  custom_roster_rv = create_custom_rv(position_df, custom_pos_reqs, user_league_settings)
446
 
447
  # Calculate VORP and rankings
448
+ pos_des_dict, orig_rank_dict = assign_vorp_scoring(position_df, halfPpr_rv, custom_scoring_rv, user_league_settings, user_pos_vorp_limiters)
449
  final_df = assign_vorp_roster(position_df, halfPpr_rv, custom_roster_rv, user_league_settings, user_pos_vorp_limiters)
450
  final_df = final_df.drop(columns=['SR_ID'], axis=1)
451
+ final_df['scoring_rank'] = final_df['Name'].map(orig_rank_dict)
452
  final_df['pos_lock_name'] = final_df['pos_designation'].map(pos_des_dict)
453
 
454
  # Display results