import numpy as np import pandas as pd from scipy.stats import poisson import tools import streamlit as st import matplotlib.pyplot as plt import seaborn as sns # Lendo arquivo excel df = pd.read_excel('info_futebol.xlsx', sheet_name='info_geral', index_col='Time') # Criando coluna de força de times a, b = df['Pontuacao'].min(), df['Pontuacao'].max() fa, fb = 0.15, 1 # novos limites b1 = (fb - fa)/(b-a) b0 = fb - b*b1 df['forca'] = round(b0 + b1*df['Pontuacao'], 3) # Streamlit Step rad = st.sidebar.radio('Navegue pelos itens', ['Home', 'Sobre', 'BET Jogos', 'BET Campeonato']) if rad == 'Home': st.markdown(""" ## :soccer: BET-POISSON """) st.write('Simulando jogos com base na distribuição de Poisson.') if rad == 'Sobre': st.write('Em construção') if rad == 'BET Jogos': times1 = list(df.index) times2 = times1.copy() casa, visitante = st.columns(2) time1 = casa.selectbox('Time Casa', times1) times2.remove(time1) time2 = visitante.selectbox('Time Visitante', times2) prob, matrix = tools.probabilidades_partidas(df, time1, time2) col1, col2, col3, col4, col5 = st.columns(5) col1.image(df.loc[time1, 'imagem']) col2.metric(time1, prob[0]) col3.metric('Empate', prob[1]) col4.metric(time2, prob[2]) col5.image(df.loc[time2, 'imagem']) if st.button('Mostrar mapa de calor dos placares'): fig, ax = plt.subplots(figsize=(10, 5)) sns.heatmap(matrix, vmax = 19 , annot=True, linewidth = .5, fmt=".1f") plt.xlabel(f'{time2}', fontsize=13) plt.ylabel(f'{time1}', fontsize=13) st.pyplot(fig) if rad == 'BET Campeonato': st.write('Em construção')