Я делаю ставки на футбольные матчи, которые сделали пользователи.Их статус правильный или неправильный.Каждую неделю (в таблице jornada) на каждого пользователя приходится 10 матчей.Кроме того, пользователи группируются в сообщества.
Я хочу вычислить совокупное соотношение #Corrects / (#Corrects + #Incorrects)
в неделю ('jornada') foreach user.
Вот так будет выглядеть набор данных:
Каждую неделю у каждого пользователя будет 10 новых догадок («число»), которые должны быть накоплены для его предыдущих догадок за тот же сезон («темпорада»)).
Вот что я пробовал:
bets.groupby(['temporada', 'username', 'comunidad', 'jornada'])['status'].cumsum()
Но возникает ошибка: DataError: No numeric types to aggregate
Я также пытаюсь скрыть статус с помощью get_dummies изатем примените cum_sum к группе, но я должен получить такое же соотношение для 10 раз, когда один и тот же пользователь появляется на той же неделе, и этого не происходит:
dum = pd.get_dummies(bets['status'])
bets2 = pd.concat([bets, dum], axis=1)
corrects = bets2.groupby(['temporada', 'username', 'comunidad', 'jornada'])['Correct'].cumsum()
incorrects = bets2.groupby(['temporada', 'username', 'comunidad', 'jornada'])['Incorrect'].cumsum()
ratio = corrects / (corrects + incorrects)
bets3 = pd.concat([bets2, ratio], axis=1)