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 |
|