Отчасти широкий вопрос, но я не уверен, как еще получить указатели о том, как улучшить этот код.
У меня есть датафрейм с коэффициентами ставок и результатами игры, и я хотел бы рассчитать выплату инвестиций в определенную команду.
Код, который у меня сейчас есть, работает, но я чувствую, что он экономит большую часть того, что может сделать Pandas, просто опираясь на метод apply
и переходя на Python.
Вот как выглядит фрейм данных:
![enter image description here](https://i.stack.imgur.com/8dMcu.png)
А вот и мой код:
def compute_payout(odds, amount=1):
if odds < 0:
return amount/(-1.0 * odds/100.0)
elif odds > 0:
return amount/(100.0/odds)
def game_payout(row, team_name):
if row['home_team'] == team_name:
if row['home_score'] > row['away_score']:
return compute_payout(row['home_odds'])
else:
return -1
elif row['away_team'] == team_name:
if row['away_score'] > row['home_score']:
return compute_payout(row['away_odds'])
else:
return -1
payout = df.apply(lambda row: game_payout(row, team_name), axis=1)
Любые предложения высоко ценятся!