Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -37,6 +37,7 @@ csgo_losses = 'CSGO_Loss_Proj'
|
|
| 37 |
overall_odds = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 38 |
RPL_odds = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 39 |
csgo_bo1 = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
|
|
|
| 40 |
csgo_bo3 = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 41 |
csgo_bo5 = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 42 |
player_baselines = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
|
@@ -96,7 +97,7 @@ def load_roo_model(URL):
|
|
| 96 |
@st.cache_data
|
| 97 |
def load_overall_odds(URL):
|
| 98 |
sh = gc.open_by_url(URL)
|
| 99 |
-
worksheet = sh.
|
| 100 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 101 |
raw_display['Odds'] = raw_display['Odds'].str.replace('%', '').astype(float)/100
|
| 102 |
|
|
@@ -105,7 +106,7 @@ def load_overall_odds(URL):
|
|
| 105 |
@st.cache_data
|
| 106 |
def load_rpl_odds(URL):
|
| 107 |
sh = gc.open_by_url(URL)
|
| 108 |
-
worksheet = sh.
|
| 109 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 110 |
raw_display['Odds'] = raw_display['Odds'].str.replace('%', '').astype(float)/100
|
| 111 |
raw_display['Vegas'] = raw_display['Vegas'].str.replace('%', '').astype(float)/100
|
|
@@ -116,7 +117,18 @@ def load_rpl_odds(URL):
|
|
| 116 |
@st.cache_data
|
| 117 |
def load_bo1_proj_model(URL):
|
| 118 |
sh = gc.open_by_url(URL)
|
| 119 |
-
worksheet = sh.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 121 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 122 |
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
|
@@ -127,7 +139,7 @@ def load_bo1_proj_model(URL):
|
|
| 127 |
@st.cache_data
|
| 128 |
def load_bo3_proj_model(URL):
|
| 129 |
sh = gc.open_by_url(URL)
|
| 130 |
-
worksheet = sh.
|
| 131 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 132 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 133 |
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
|
@@ -138,7 +150,7 @@ def load_bo3_proj_model(URL):
|
|
| 138 |
@st.cache_data
|
| 139 |
def load_bo5_proj_model(URL):
|
| 140 |
sh = gc.open_by_url(URL)
|
| 141 |
-
worksheet = sh.
|
| 142 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 143 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 144 |
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
|
@@ -149,7 +161,7 @@ def load_bo5_proj_model(URL):
|
|
| 149 |
@st.cache_data
|
| 150 |
def load_slate_baselines(URL):
|
| 151 |
sh = gc.open_by_url(URL)
|
| 152 |
-
worksheet = sh.
|
| 153 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 154 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 155 |
raw_display = raw_display.sort_values(by='Kills/Round', ascending=False)
|
|
@@ -158,7 +170,7 @@ def load_slate_baselines(URL):
|
|
| 158 |
|
| 159 |
hold_display = load_roo_model(csgo_overall)
|
| 160 |
|
| 161 |
-
tab1, tab2, tab3, tab4 = st.tabs(["CSGO Odds Tables", "CSGO Range of Outcomes", "CSGO Player Stat Projections", "CSGO Slate Baselines"])
|
| 162 |
|
| 163 |
def convert_df_to_csv(df):
|
| 164 |
return df.to_csv().encode('utf-8')
|
|
@@ -251,4 +263,19 @@ with tab4:
|
|
| 251 |
data=convert_df_to_csv(display),
|
| 252 |
file_name='CSGO_Baselines_export.csv',
|
| 253 |
mime='text/csv',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 254 |
)
|
|
|
|
| 37 |
overall_odds = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 38 |
RPL_odds = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 39 |
csgo_bo1 = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 40 |
+
two_map = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 41 |
csgo_bo3 = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 42 |
csgo_bo5 = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
| 43 |
player_baselines = 'https://docs.google.com/spreadsheets/d/1aLVN4izjSuqZGRyz73Kip6U1q3rubh6v9GrckgEqbfs/edit?pli=1#gid=1545712013'
|
|
|
|
| 97 |
@st.cache_data
|
| 98 |
def load_overall_odds(URL):
|
| 99 |
sh = gc.open_by_url(URL)
|
| 100 |
+
worksheet = sh.worksheet('Overall_Vegas')
|
| 101 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 102 |
raw_display['Odds'] = raw_display['Odds'].str.replace('%', '').astype(float)/100
|
| 103 |
|
|
|
|
| 106 |
@st.cache_data
|
| 107 |
def load_rpl_odds(URL):
|
| 108 |
sh = gc.open_by_url(URL)
|
| 109 |
+
worksheet = sh.worksheet('RPL_Vegas')
|
| 110 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 111 |
raw_display['Odds'] = raw_display['Odds'].str.replace('%', '').astype(float)/100
|
| 112 |
raw_display['Vegas'] = raw_display['Vegas'].str.replace('%', '').astype(float)/100
|
|
|
|
| 117 |
@st.cache_data
|
| 118 |
def load_bo1_proj_model(URL):
|
| 119 |
sh = gc.open_by_url(URL)
|
| 120 |
+
worksheet = sh.worksheet('Overall_BO1_Projections')
|
| 121 |
+
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 122 |
+
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 123 |
+
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
| 124 |
+
raw_display = raw_display.sort_values(by='Kills', ascending=False)
|
| 125 |
+
|
| 126 |
+
return raw_display
|
| 127 |
+
|
| 128 |
+
@st.cache_data
|
| 129 |
+
def load_bo2_proj_model(URL):
|
| 130 |
+
sh = gc.open_by_url(URL)
|
| 131 |
+
worksheet = sh.worksheet('2_map_projections')
|
| 132 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 133 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 134 |
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
|
|
|
| 139 |
@st.cache_data
|
| 140 |
def load_bo3_proj_model(URL):
|
| 141 |
sh = gc.open_by_url(URL)
|
| 142 |
+
worksheet = sh.worksheet('Overall_BO3_Projections')
|
| 143 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 144 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 145 |
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
|
|
|
| 150 |
@st.cache_data
|
| 151 |
def load_bo5_proj_model(URL):
|
| 152 |
sh = gc.open_by_url(URL)
|
| 153 |
+
worksheet = sh.worksheet('Overall_BO5_Projections')
|
| 154 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 155 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 156 |
raw_display['Odds%'] = raw_display['Odds%'].str.replace('%', '').astype(float)/100
|
|
|
|
| 161 |
@st.cache_data
|
| 162 |
def load_slate_baselines(URL):
|
| 163 |
sh = gc.open_by_url(URL)
|
| 164 |
+
worksheet = sh.worksheet('Player_Data')
|
| 165 |
raw_display = pd.DataFrame(worksheet.get_all_records())
|
| 166 |
raw_display.rename(columns={"Name": "Player"}, inplace = True)
|
| 167 |
raw_display = raw_display.sort_values(by='Kills/Round', ascending=False)
|
|
|
|
| 170 |
|
| 171 |
hold_display = load_roo_model(csgo_overall)
|
| 172 |
|
| 173 |
+
tab1, tab2, tab3, tab4, tab5 = st.tabs(["CSGO Odds Tables", "CSGO Range of Outcomes", "CSGO Player Stat Projections", "CSGO Slate Baselines", '2-map Projections'])
|
| 174 |
|
| 175 |
def convert_df_to_csv(df):
|
| 176 |
return df.to_csv().encode('utf-8')
|
|
|
|
| 263 |
data=convert_df_to_csv(display),
|
| 264 |
file_name='CSGO_Baselines_export.csv',
|
| 265 |
mime='text/csv',
|
| 266 |
+
)
|
| 267 |
+
|
| 268 |
+
with tab5:
|
| 269 |
+
if st.button("Reset Data", key='reset5'):
|
| 270 |
+
# Clear values from *all* all in-memory and on-disk data caches:
|
| 271 |
+
# i.e. clear values from both square and cube
|
| 272 |
+
st.cache_data.clear()
|
| 273 |
+
hold_display = load_slate_baselines(two_map)
|
| 274 |
+
display = hold_display.set_index('Player')
|
| 275 |
+
st.dataframe(display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(precision=2), use_container_width = True)
|
| 276 |
+
st.download_button(
|
| 277 |
+
label="Export Baselines",
|
| 278 |
+
data=convert_df_to_csv(display),
|
| 279 |
+
file_name='CSGO_2_map_export.csv',
|
| 280 |
+
mime='text/csv',
|
| 281 |
)
|