Spaces:
Running
Running
James McCool
commited on
Commit
·
cb5655c
1
Parent(s):
24a1053
Refactor kill and death prediction inputs in app.py. Introduced a selection box for users to choose between predicting kills/deaths or using averages, enhancing user experience. Updated input validation to ensure minimum values are set correctly, improving data integrity in team performance projections.
Browse files
app.py
CHANGED
@@ -71,20 +71,30 @@ with st.sidebar:
|
|
71 |
index=0
|
72 |
)
|
73 |
|
74 |
-
|
75 |
-
"
|
76 |
-
|
77 |
-
|
78 |
-
value=20
|
79 |
-
)
|
80 |
-
|
81 |
-
death_prediction = st.number_input(
|
82 |
-
"Predicted Team Deaths",
|
83 |
-
min_value=0,
|
84 |
-
max_value=100,
|
85 |
-
value=5
|
86 |
)
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
@st.cache_data(ttl = 60)
|
89 |
def init_team_data(team, win_loss, kill_prediction, death_prediction, start_date, end_date):
|
90 |
|
@@ -241,20 +251,36 @@ def init_team_data(team, win_loss, kill_prediction, death_prediction, start_date
|
|
241 |
raw_display['playername_avg_death_share_loss'] = raw_display['playername_avg_deaths_loss'] / raw_display['teamname_avg_deaths_loss']
|
242 |
raw_display['playername_avg_assist_share_loss'] = raw_display['playername_avg_assists_loss'] / raw_display['teamname_avg_kills_loss']
|
243 |
raw_display['playername_avg_cs_share_loss'] = raw_display['playername_avg_total_cs_loss'] / raw_display['teamname_avg_total_cs_loss']
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
else:
|
254 |
-
|
255 |
-
|
256 |
-
team_data
|
257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
|
259 |
return team_data.dropna().reset_index(drop=True)
|
260 |
|
|
|
71 |
index=0
|
72 |
)
|
73 |
|
74 |
+
game_settings = st.selectbox(
|
75 |
+
"Predict kills/deaths or use average?",
|
76 |
+
options=["Average", "Predict"],
|
77 |
+
index=0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
)
|
79 |
|
80 |
+
if game_settings == "Average":
|
81 |
+
kill_prediction = 0
|
82 |
+
death_prediction = 0
|
83 |
+
else:
|
84 |
+
kill_prediction = st.number_input(
|
85 |
+
"Predicted Team Kills",
|
86 |
+
min_value=1,
|
87 |
+
max_value=100,
|
88 |
+
value=20
|
89 |
+
)
|
90 |
+
|
91 |
+
death_prediction = st.number_input(
|
92 |
+
"Predicted Team Deaths",
|
93 |
+
min_value=1,
|
94 |
+
max_value=100,
|
95 |
+
value=5
|
96 |
+
)
|
97 |
+
|
98 |
@st.cache_data(ttl = 60)
|
99 |
def init_team_data(team, win_loss, kill_prediction, death_prediction, start_date, end_date):
|
100 |
|
|
|
251 |
raw_display['playername_avg_death_share_loss'] = raw_display['playername_avg_deaths_loss'] / raw_display['teamname_avg_deaths_loss']
|
252 |
raw_display['playername_avg_assist_share_loss'] = raw_display['playername_avg_assists_loss'] / raw_display['teamname_avg_kills_loss']
|
253 |
raw_display['playername_avg_cs_share_loss'] = raw_display['playername_avg_total_cs_loss'] / raw_display['teamname_avg_total_cs_loss']
|
254 |
+
if kill_prediction > 0:
|
255 |
+
raw_display = raw_display[['playername', 'teamname', 'playername_avg_kill_share_win', 'playername_avg_death_share_win', 'playername_avg_assist_share_win', 'playername_avg_total_cs_win', 'playername_avg_kill_share_loss', 'playername_avg_death_share_loss', 'playername_avg_assist_share_loss', 'playername_avg_total_cs_loss']]
|
256 |
+
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_total_cs_win': 'wCS', 'playername_avg_kill_share_loss': 'lKill%', 'playername_avg_death_share_loss': 'lDeath%', 'playername_avg_assist_share_loss': 'lAssist%', 'playername_avg_total_cs_loss': 'lCS'})
|
257 |
+
team_data = raw_display.drop_duplicates(subset = ['playername'])
|
258 |
+
|
259 |
+
if win_loss == "Win":
|
260 |
+
team_data['Kill_Proj'] = team_data['wKill%'] * kill_prediction
|
261 |
+
team_data['Death_Proj'] = team_data['wDeath%'] * death_prediction
|
262 |
+
team_data['Assist_Proj'] = team_data['wAssist%'] * kill_prediction
|
263 |
+
team_data = team_data[['playername', 'teamname', 'wKill%', 'wDeath%', 'wAssist%', 'wCS', 'Kill_Proj', 'Death_Proj', 'Assist_Proj']]
|
264 |
+
else:
|
265 |
+
team_data['Kill_Proj'] = team_data['lKill%'] * kill_prediction
|
266 |
+
team_data['Death_Proj'] = team_data['lDeath%'] * death_prediction
|
267 |
+
team_data['Assist_Proj'] = team_data['lAssist%'] * kill_prediction
|
268 |
+
team_data = team_data[['playername', 'teamname', 'lKill%', 'lDeath%', 'lAssist%', 'lCS', 'Kill_Proj', 'Death_Proj', 'Assist_Proj']]
|
269 |
else:
|
270 |
+
raw_display = raw_display[['playername', 'teamname', 'playername_avg_kill_win', 'playername_avg_death_win', 'playername_avg_assist_win', 'playername_avg_total_cs_win', 'playername_avg_kill_loss', 'playername_avg_death_loss', 'playername_avg_assist_loss', 'playername_avg_total_cs_loss']]
|
271 |
+
raw_display = raw_display.rename(columns = {'playername_avg_kill_win': 'wKill%', 'playername_avg_death_win': 'wDeath%', 'playername_avg_assist_win': 'wAssist%', 'playername_avg_total_cs_win': 'wCS', 'playername_avg_kill_loss': 'lKill%', 'playername_avg_death_loss': 'lDeath%', 'playername_avg_assist_loss': 'lAssist%', 'playername_avg_total_cs_loss': 'lCS'})
|
272 |
+
team_data = raw_display.drop_duplicates(subset = ['playername'])
|
273 |
+
|
274 |
+
if win_loss == "Win":
|
275 |
+
team_data['Kill_Proj'] = team_data['wKill%']
|
276 |
+
team_data['Death_Proj'] = team_data['wDeath%']
|
277 |
+
team_data['Assist_Proj'] = team_data['wAssist%']
|
278 |
+
team_data = team_data[['playername', 'teamname', 'wKill%', 'wDeath%', 'wAssist%', 'wCS', 'Kill_Proj', 'Death_Proj', 'Assist_Proj']]
|
279 |
+
else:
|
280 |
+
team_data['Kill_Proj'] = team_data['lKill%']
|
281 |
+
team_data['Death_Proj'] = team_data['lDeath%']
|
282 |
+
team_data['Assist_Proj'] = team_data['lAssist%']
|
283 |
+
team_data = team_data[['playername', 'teamname', 'lKill%', 'lDeath%', 'lAssist%', 'lCS', 'Kill_Proj', 'Death_Proj', 'Assist_Proj']]
|
284 |
|
285 |
return team_data.dropna().reset_index(drop=True)
|
286 |
|