James McCool commited on
Commit
9bc6a1f
·
1 Parent(s): b0f7669

Refactor salary and ID dictionary handling in app.py: update variable names for clarity and ensure consistent mapping for Draftkings and Fanduel exports, enhancing data accuracy during player data processing.

Browse files
Files changed (1) hide show
  1. app.py +60 -31
app.py CHANGED
@@ -369,9 +369,12 @@ def convert_pm_df(array):
369
  return array.to_csv(index=False).encode('utf-8')
370
 
371
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
372
- salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
373
- id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
374
- salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
 
 
 
375
  dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
376
  fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
377
 
@@ -399,9 +402,12 @@ with reset_col:
399
  if st.button("Load/Reset Data", key='reset1'):
400
  st.cache_data.clear()
401
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
402
- salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
403
- id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
404
- salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
 
 
 
405
  dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
406
  fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
407
  dk_nba_lineups = pd.DataFrame(columns=dk_nba_columns)
@@ -527,9 +533,12 @@ with tab2:
527
  if st.button("Load/Reset Data", key='reset2'):
528
  st.cache_data.clear()
529
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
530
- salary_dict = dict(zip(roo_raw.Player, roo_raw.Salary))
531
- id_dict = dict(zip(roo_raw.Player, roo_raw.player_ID))
532
- salary_dict_sd = dict(zip(sd_raw.Player, sd_raw.Salary))
 
 
 
533
  dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
534
  fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
535
  dk_nba_lineups = pd.DataFrame(columns=dk_nba_columns)
@@ -611,7 +620,7 @@ with tab2:
611
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
612
  for col_idx in map_columns:
613
  if slate_type_var1 == 'Regular':
614
- data_export[col_idx] = data_export[col_idx].map(id_dict)
615
  elif slate_type_var1 == 'Showdown':
616
  data_export[col_idx] = data_export[col_idx].map(dk_id_dict_sd)
617
  elif site_var2 == 'Fanduel':
@@ -624,7 +633,7 @@ with tab2:
624
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4']
625
  for col_idx in map_columns:
626
  if slate_type_var1 == 'Regular':
627
- data_export[col_idx] = data_export[col_idx].map(id_dict)
628
  elif slate_type_var1 == 'Showdown':
629
  data_export[col_idx] = data_export[col_idx].map(fd_id_dict_sd)
630
 
@@ -670,6 +679,11 @@ with tab2:
670
  map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
671
  elif slate_type_var1 == 'Showdown':
672
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
 
 
 
 
 
673
  elif site_var2 == 'Fanduel':
674
  if slate_type_var1 == 'Regular':
675
  if league_var == 'NBA':
@@ -678,11 +692,11 @@ with tab2:
678
  map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
679
  elif slate_type_var1 == 'Showdown':
680
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4']
681
- for col_idx in map_columns:
682
- if slate_type_var1 == 'Regular':
683
- data_export[col_idx] = data_export[col_idx].map(id_dict)
684
- elif slate_type_var1 == 'Showdown':
685
- data_export[col_idx] = data_export[col_idx].map(fd_id_dict_sd)
686
  data_export = data_export[data_export['salary'] >= salary_min_var]
687
  data_export = data_export[data_export['salary'] <= salary_max_var]
688
 
@@ -756,14 +770,14 @@ with tab2:
756
  if site_var2 == 'Draftkings':
757
  if slate_type_var1 == 'Regular':
758
  for col_idx in range(8):
759
- export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict)
760
  elif slate_type_var1 == 'Showdown':
761
  for col_idx in range(6):
762
  export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(dk_id_dict_sd)
763
  elif site_var2 == 'Fanduel':
764
  if slate_type_var1 == 'Regular':
765
  for col_idx in range(9):
766
- export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(id_dict)
767
  elif slate_type_var1 == 'Showdown':
768
  for col_idx in range(6):
769
  export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(fd_id_dict_sd)
@@ -1036,12 +1050,20 @@ with tab2:
1036
  percentages = (value_counts / lineup_num_var * 100).round(2)
1037
 
1038
  # Create a DataFrame with the results
1039
- summary_df = pd.DataFrame({
1040
- 'Player': value_counts.index,
1041
- 'Salary': [salary_dict.get(player, player) for player in value_counts.index],
1042
- 'Frequency': value_counts.values,
1043
- 'Percentage': percentages.values
1044
- })
 
 
 
 
 
 
 
 
1045
 
1046
  # Sort by frequency in descending order
1047
  summary_df = summary_df.sort_values('Frequency', ascending=False)
@@ -1087,13 +1109,20 @@ with tab2:
1087
 
1088
  percentages = (value_counts / len(st.session_state.working_seed) * 100).round(2)
1089
  # Create a DataFrame with the results
1090
- summary_df = pd.DataFrame({
1091
- 'Player': value_counts.index,
1092
- 'Salary': [salary_dict.get(player, player) for player in value_counts.index],
1093
- 'Frequency': value_counts.values,
1094
- 'Percentage': percentages.values
1095
- })
1096
-
 
 
 
 
 
 
 
1097
  # Sort by frequency in descending order
1098
  summary_df = summary_df.sort_values('Frequency', ascending=False)
1099
 
 
369
  return array.to_csv(index=False).encode('utf-8')
370
 
371
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
372
+ dk_salary_dict = dict(zip(dk_raw.Player, dk_raw.Salary))
373
+ fd_salary_dict = dict(zip(fd_raw.Player, fd_raw.Salary))
374
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
375
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_ID))
376
+ dk_salary_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.Salary))
377
+ fd_salary_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.Salary))
378
  dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
379
  fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
380
 
 
402
  if st.button("Load/Reset Data", key='reset1'):
403
  st.cache_data.clear()
404
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
405
+ dk_salary_dict = dict(zip(dk_raw.Player, dk_raw.Salary))
406
+ fd_salary_dict = dict(zip(fd_raw.Player, fd_raw.Salary))
407
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
408
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_ID))
409
+ dk_salary_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.Salary))
410
+ fd_salary_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.Salary))
411
  dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
412
  fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
413
  dk_nba_lineups = pd.DataFrame(columns=dk_nba_columns)
 
533
  if st.button("Load/Reset Data", key='reset2'):
534
  st.cache_data.clear()
535
  dk_raw, fd_raw, dk_raw_sec, fd_raw_sec, roo_raw, sd_raw, dk_sd_raw, fd_sd_raw, timestamp = load_overall_stats('NBA')
536
+ dk_salary_dict = dict(zip(dk_raw.Player, dk_raw.Salary))
537
+ fd_salary_dict = dict(zip(fd_raw.Player, fd_raw.Salary))
538
+ dk_id_dict = dict(zip(dk_raw.Player, dk_raw.player_ID))
539
+ fd_id_dict = dict(zip(fd_raw.Player, fd_raw.player_ID))
540
+ dk_salary_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.Salary))
541
+ fd_salary_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.Salary))
542
  dk_id_dict_sd = dict(zip(dk_sd_raw.Player, dk_sd_raw.player_ID))
543
  fd_id_dict_sd = dict(zip(fd_sd_raw.Player, fd_sd_raw.player_ID))
544
  dk_nba_lineups = pd.DataFrame(columns=dk_nba_columns)
 
620
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
621
  for col_idx in map_columns:
622
  if slate_type_var1 == 'Regular':
623
+ data_export[col_idx] = data_export[col_idx].map(dk_id_dict)
624
  elif slate_type_var1 == 'Showdown':
625
  data_export[col_idx] = data_export[col_idx].map(dk_id_dict_sd)
626
  elif site_var2 == 'Fanduel':
 
633
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4']
634
  for col_idx in map_columns:
635
  if slate_type_var1 == 'Regular':
636
+ data_export[col_idx] = data_export[col_idx].map(fd_id_dict)
637
  elif slate_type_var1 == 'Showdown':
638
  data_export[col_idx] = data_export[col_idx].map(fd_id_dict_sd)
639
 
 
679
  map_columns = ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL']
680
  elif slate_type_var1 == 'Showdown':
681
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']
682
+ for col_idx in map_columns:
683
+ if slate_type_var1 == 'Regular':
684
+ data_export[col_idx] = data_export[col_idx].map(dk_id_dict)
685
+ elif slate_type_var1 == 'Showdown':
686
+ data_export[col_idx] = data_export[col_idx].map(dk_id_dict_sd)
687
  elif site_var2 == 'Fanduel':
688
  if slate_type_var1 == 'Regular':
689
  if league_var == 'NBA':
 
692
  map_columns = ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4']
693
  elif slate_type_var1 == 'Showdown':
694
  map_columns = ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4']
695
+ for col_idx in map_columns:
696
+ if slate_type_var1 == 'Regular':
697
+ data_export[col_idx] = data_export[col_idx].map(fd_id_dict)
698
+ elif slate_type_var1 == 'Showdown':
699
+ data_export[col_idx] = data_export[col_idx].map(fd_id_dict_sd)
700
  data_export = data_export[data_export['salary'] >= salary_min_var]
701
  data_export = data_export[data_export['salary'] <= salary_max_var]
702
 
 
770
  if site_var2 == 'Draftkings':
771
  if slate_type_var1 == 'Regular':
772
  for col_idx in range(8):
773
+ export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(dk_id_dict)
774
  elif slate_type_var1 == 'Showdown':
775
  for col_idx in range(6):
776
  export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(dk_id_dict_sd)
777
  elif site_var2 == 'Fanduel':
778
  if slate_type_var1 == 'Regular':
779
  for col_idx in range(9):
780
+ export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(fd_id_dict)
781
  elif slate_type_var1 == 'Showdown':
782
  for col_idx in range(6):
783
  export_file.iloc[:, col_idx] = export_file.iloc[:, col_idx].map(fd_id_dict_sd)
 
1050
  percentages = (value_counts / lineup_num_var * 100).round(2)
1051
 
1052
  # Create a DataFrame with the results
1053
+ if site_var2 == 'Draftkings':
1054
+ summary_df = pd.DataFrame({
1055
+ 'Player': value_counts.index,
1056
+ 'Salary': [dk_salary_dict.get(player, player) for player in value_counts.index],
1057
+ 'Frequency': value_counts.values,
1058
+ 'Percentage': percentages.values
1059
+ })
1060
+ elif site_var2 == 'Fanduel':
1061
+ summary_df = pd.DataFrame({
1062
+ 'Player': value_counts.index,
1063
+ 'Salary': [fd_salary_dict.get(player, player) for player in value_counts.index],
1064
+ 'Frequency': value_counts.values,
1065
+ 'Percentage': percentages.values
1066
+ })
1067
 
1068
  # Sort by frequency in descending order
1069
  summary_df = summary_df.sort_values('Frequency', ascending=False)
 
1109
 
1110
  percentages = (value_counts / len(st.session_state.working_seed) * 100).round(2)
1111
  # Create a DataFrame with the results
1112
+ if site_var2 == 'Draftkings':
1113
+ summary_df = pd.DataFrame({
1114
+ 'Player': value_counts.index,
1115
+ 'Salary': [dk_salary_dict.get(player, player) for player in value_counts.index],
1116
+ 'Frequency': value_counts.values,
1117
+ 'Percentage': percentages.values
1118
+ })
1119
+ elif site_var2 == 'Fanduel':
1120
+ summary_df = pd.DataFrame({
1121
+ 'Player': value_counts.index,
1122
+ 'Salary': [fd_salary_dict.get(player, player) for player in value_counts.index],
1123
+ 'Frequency': value_counts.values,
1124
+ 'Percentage': percentages.values
1125
+ })
1126
  # Sort by frequency in descending order
1127
  summary_df = summary_df.sort_values('Frequency', ascending=False)
1128