Spaces:
Running
Running
James McCool
commited on
Commit
·
a655909
1
Parent(s):
7545b49
Enhance team analysis functionality with sidebar options for team selection and prediction settings. Updated init_team_data function to incorporate win/loss predictions and display projected kills and deaths based on user input.
Browse files
app.py
CHANGED
@@ -20,17 +20,55 @@ def init_conn():
|
|
20 |
|
21 |
db, team_names, player_names = init_conn()
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
@st.cache_data(ttl = 60)
|
24 |
-
def init_team_data(team):
|
25 |
|
26 |
collection = db["gamelogs"]
|
27 |
cursor = collection.find({"teamname": team})
|
28 |
|
29 |
raw_display = pd.DataFrame(list(cursor))
|
30 |
raw_display = raw_display[['playername', 'teamname', 'playername_avg_kill_share_win', 'playername_avg_death_share_win', 'playername_avg_assist_share_win', 'playername_avg_cs_share_win', 'playername_avg_kill_share_loss', 'playername_avg_death_share_loss', 'playername_avg_assist_share_loss', 'playername_avg_cs_share_loss']]
|
31 |
-
|
32 |
team_data = raw_display.drop_duplicates(subset = ['playername'])
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
return team_data
|
35 |
|
36 |
-
st.
|
|
|
|
20 |
|
21 |
db, team_names, player_names = init_conn()
|
22 |
|
23 |
+
# Create sidebar container for options
|
24 |
+
with st.sidebar:
|
25 |
+
st.header("Team Analysis Options")
|
26 |
+
selected_team = st.selectbox(
|
27 |
+
"Select Team",
|
28 |
+
options=team_names,
|
29 |
+
index=team_names.index("T1") if "T1" in team_names else 0
|
30 |
+
)
|
31 |
+
|
32 |
+
st.subheader("Prediction Settings")
|
33 |
+
win_loss = st.selectbox(
|
34 |
+
"Select Win/Loss",
|
35 |
+
options=["Win", "Loss"],
|
36 |
+
index=0
|
37 |
+
)
|
38 |
+
|
39 |
+
kill_prediction = st.number_input(
|
40 |
+
"Predicted Team Kills",
|
41 |
+
min_value=0,
|
42 |
+
max_value=100,
|
43 |
+
value=15
|
44 |
+
)
|
45 |
+
|
46 |
+
death_prediction = st.number_input(
|
47 |
+
"Predicted Team Deaths",
|
48 |
+
min_value=0,
|
49 |
+
max_value=100,
|
50 |
+
value=10
|
51 |
+
)
|
52 |
+
|
53 |
@st.cache_data(ttl = 60)
|
54 |
+
def init_team_data(team, win_loss, kill_prediction, death_prediction):
|
55 |
|
56 |
collection = db["gamelogs"]
|
57 |
cursor = collection.find({"teamname": team})
|
58 |
|
59 |
raw_display = pd.DataFrame(list(cursor))
|
60 |
raw_display = raw_display[['playername', 'teamname', 'playername_avg_kill_share_win', 'playername_avg_death_share_win', 'playername_avg_assist_share_win', 'playername_avg_cs_share_win', 'playername_avg_kill_share_loss', 'playername_avg_death_share_loss', 'playername_avg_assist_share_loss', 'playername_avg_cs_share_loss']]
|
61 |
+
raw_display = raw_display.rename(columns = {'playername_avg_kill_share_win': 'wKill%', 'playername_avg_death_share_win': 'wDeath%', 'playername_avg_assist_share_win': 'wAssist%', 'playername_avg_cs_share_win': 'wCS%', 'playername_avg_kill_share_loss': 'lKill%', 'playername_avg_death_share_loss': 'lDeath%', 'playername_avg_assist_share_loss': 'lAssist%', 'playername_avg_cs_share_loss': 'lCS%'})
|
62 |
team_data = raw_display.drop_duplicates(subset = ['playername'])
|
63 |
|
64 |
+
if win_loss == "Win":
|
65 |
+
team_data['Kill_Proj'] = team_data['wKill%'] * kill_prediction
|
66 |
+
team_data['Death_Proj'] = team_data['wDeath%'] * death_prediction
|
67 |
+
else:
|
68 |
+
team_data['Kill_Proj'] = team_data['lKill%'] * kill_prediction
|
69 |
+
team_data['Death_Proj'] = team_data['lDeath%'] * death_prediction
|
70 |
+
|
71 |
return team_data
|
72 |
|
73 |
+
if st.button("Run"):
|
74 |
+
st.dataframe(init_team_data(selected_team, win_loss, kill_prediction, death_prediction))
|