Spaces:
Running
Running
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
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 |
-
|
373 |
-
|
374 |
-
|
|
|
|
|
|
|
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 |
-
|
403 |
-
|
404 |
-
|
|
|
|
|
|
|
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 |
-
|
531 |
-
|
532 |
-
|
|
|
|
|
|
|
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(
|
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(
|
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 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
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(
|
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(
|
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 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
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 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
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 |
|