Spaces:
Running
Running
File size: 2,837 Bytes
7545b49 a655909 7545b49 a655909 7545b49 a655909 7545b49 a655909 7545b49 a655909 |
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 |
import streamlit as st
st.set_page_config(layout="wide")
import numpy as np
import pandas as pd
import pymongo
import time
@st.cache_resource
def init_conn():
uri = st.secrets['mongo_uri']
client = pymongo.MongoClient(uri, retryWrites=True, serverSelectionTimeoutMS=500000)
db = client["League_of_Legends_Database"]
collection = db["gamelogs"]
team_names = collection.distinct("teamname")
player_names = collection.distinct("playername")
return db, team_names, player_names
db, team_names, player_names = init_conn()
# Create sidebar container for options
with st.sidebar:
st.header("Team Analysis Options")
selected_team = st.selectbox(
"Select Team",
options=team_names,
index=team_names.index("T1") if "T1" in team_names else 0
)
st.subheader("Prediction Settings")
win_loss = st.selectbox(
"Select Win/Loss",
options=["Win", "Loss"],
index=0
)
kill_prediction = st.number_input(
"Predicted Team Kills",
min_value=0,
max_value=100,
value=15
)
death_prediction = st.number_input(
"Predicted Team Deaths",
min_value=0,
max_value=100,
value=10
)
@st.cache_data(ttl = 60)
def init_team_data(team, win_loss, kill_prediction, death_prediction):
collection = db["gamelogs"]
cursor = collection.find({"teamname": team})
raw_display = pd.DataFrame(list(cursor))
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']]
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%'})
team_data = raw_display.drop_duplicates(subset = ['playername'])
if win_loss == "Win":
team_data['Kill_Proj'] = team_data['wKill%'] * kill_prediction
team_data['Death_Proj'] = team_data['wDeath%'] * death_prediction
else:
team_data['Kill_Proj'] = team_data['lKill%'] * kill_prediction
team_data['Death_Proj'] = team_data['lDeath%'] * death_prediction
return team_data
if st.button("Run"):
st.dataframe(init_team_data(selected_team, win_loss, kill_prediction, death_prediction)) |