Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
import pandas as pd
import numpy as np
import const
def generarProbs( archivo ):
probs = {}
df = pd.read_csv( archivo )
for idx, row in df.iterrows():
probs[row[0]] = list(row[1:] / sum(row[1:]))
return probs
def simularAparicion( jugador ):
probs_jugador = probs[jugador]
evento = np.random.choice( const.eventos, 1, p = probs_jugador )
return evento[0]
def simularPartido( lineup ):
carreras_partido = 0
aparicion = 0
for inning in range( 0, 9 ):
outs = 0
estado = '---'
while outs < 3:
bateador_en_turno = lineup[aparicion % 9]
evento = simularAparicion( bateador_en_turno )
if evento == 'out':
outs += 1
else:
estado = const.transicion[evento][estado]
carreras_partido += const.carreras[evento][estado]
aparicion += 1
return [ carreras_partido, aparicion ]
def correrSimulaciones( lineup ):
resultado_simulacion = pd.DataFrame( columns = [ 'carreras', 'apariciones', 'carreras_apariciones'] )
for p in range( 0, const.num_simulaciones ):
resultados_partido = simularPartido( lineup )
resultado_simulacion = resultado_simulacion.append( { 'carreras' : resultados_partido[0]
, 'apariciones': resultados_partido[1]
, 'carreras_apariciones': resultados_partido[0] * 100.0 / resultados_partido[1]
}
, ignore_index = True
)
return resultado_simulacion
probs = generarProbs('jugadores.csv')
norm = correrSimulaciones( [ "Ruben Sosa","Jordany Valdespin","Yamaico Navarro","Peter O'Brien","Jeimer Candelario","Jonah Heim","Jorge Mateo","Anderson Feliz","Dairon Blanco" ])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment