File size: 2,422 Bytes
5f10580 0464302 5f10580 0464302 2b322bc 0464302 2b322bc 0464302 80e77ce 0464302 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import pandas as pd
import streamlit as st
import os
from database import gc
st.set_page_config(layout="wide")
PGA_models = os.getenv('PGA_DATA')
st.markdown("""
<style>
/* Tab styling */
.stElementContainer [data-baseweb="button-group"] {
gap: 2.000rem;
padding: 4px;
}
.stElementContainer [kind="segmented_control"] {
height: 2.000rem;
white-space: pre-wrap;
background-color: #DAA520;
color: white;
border-radius: 20px;
gap: 1px;
padding: 10px 20px;
font-weight: bold;
transition: all 0.3s ease;
}
.stElementContainer [kind="segmented_controlActive"] {
height: 3.000rem;
background-color: #DAA520;
border: 3px solid #FFD700;
border-radius: 10px;
color: black;
}
.stElementContainer [kind="segmented_control"]:hover {
background-color: #FFD700;
cursor: pointer;
}
div[data-baseweb="select"] > div {
background-color: #DAA520;
color: white;
}
</style>""", unsafe_allow_html=True)
@st.cache_data
def load_dk_player_model(URL):
sh = gc.open_by_url(URL)
worksheet = sh.worksheet('Odds_vs_Salary')
raw_display = pd.DataFrame(worksheet.get_all_records())
raw_display = raw_display.drop(['ID', 'Roster Position', '', 'Cut', 'Cut%'], axis=1)
raw_display.rename(columns={"Name": "Player"}, inplace = True)
data_cols = raw_display.columns.drop(['Player'])
raw_display[data_cols] = raw_display[data_cols].apply(pd.to_numeric, errors='coerce')
return raw_display
def convert_df_to_csv(df):
return df.to_csv().encode('utf-8')
format_dict = {'Cut%': '{:.2%}', 'Win Odds': '{:.2%}','T5 Odds': '{:.2%}', 'T10 Odds': '{:.2%}','T20 Odds': '{:.2%}'}
if st.button("Reset Data", key='reset1'):
# Clear values from *all* all in-memory and on-disk data caches:
# i.e. clear values from both square and cube
st.cache_data.clear()
hold_display = load_dk_player_model(PGA_models)
display = hold_display.set_index('Player')
st.dataframe(display.style.background_gradient(axis=0).background_gradient(cmap='RdYlGn').format(format_dict, precision=2), height=1000, use_container_width = True)
st.download_button(
label="Export Model",
data=convert_df_to_csv(display),
file_name='PGA_DK_Vegas_Salary_export.csv',
mime='text/csv',
key='DK_download',
)
|