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',
)