У меня есть фрейм данных со следующими столбцами:
| winner | loser | tournament |
+--------+---------+------------+
| John | Steve | A |
+--------+---------+------------+
| Steve | John | B |
+--------+---------+------------+
| John | Michael | A |
+--------+---------+------------+
| Steve | John | A |
+--------+---------+------------+
Я хочу рассчитать исторический выигрыш% победителя и проигравшего для данного турнира.введите и поместите его в свой собственный столбец.
Пример заполнения таблицы выше приведен ниже.Игры будут называться (победитель, проигравший, тип).
Я также добавил промежуточные столбцы расчета, чтобы сделать их более понятными.
1) Для первой игры (Джон, Стив, а).Нет предыдущих игр типа A. Поэтому мы заполняем 0s.
2) Для второй игры (Steve, John, B).Нет предыдущих игр типа B. Поэтому мы заполняем нулями.
3) Для третьей игры (Джон, Майкл, А).Существуют предыдущие игры типа A, поэтому мы можем получить информацию.Во-первых, Джон - победитель.Он выиграл 1 игру типа А в первом ряду таблицы.Таким образом, мы ставим выигрыш победителей = 1. Джон раньше не проигрывал игру типа A, поэтому мы ставим проигрыш победителей = 0. У Майкла нет истории игр, поэтому мы заполняем выигрыши проигравших = 0 и проигрыши проигравших = 0.
4) Для 4-й игры (Стив, Джон, A).Мы видим, что Стив ранее не выигрывал ни одной игры типа А, поэтому мы ставим победителей побед = 0. Он проиграл 1 игру типа А (первая строка).Таким образом, мы ставим проигрыш победителя = 1. Джон выиграл 2 игры типа А, поэтому проигравший выиграл = 2. Он проиграл
+--------+---------+------------+-------------+------------+---------------+--------------+--------------+-------------+
| winner | loser | tournament | winner wins | loser wins | winner losses | loser losses | winner win % | loser win % |
+--------+---------+------------+-------------+------------+---------------+--------------+--------------+-------------+
| John | Steve | A | 0 | 0 | 0 | 0 | 0/(0+0) | 0/(0+0) |
+--------+---------+------------+-------------+------------+---------------+--------------+--------------+-------------+
| Steve | John | B | 0 | 0 | 0 | 0 | 0/(0+0) | 0/(0+0) |
+--------+---------+------------+-------------+------------+---------------+--------------+--------------+-------------+
| John | Michael | A | 1 | 0 | 0 | 0 | 1/(1+0) | 0/(0+0) |
+--------+---------+------------+-------------+------------+---------------+--------------+--------------+-------------+
| Steve | John | A | 0 | 2 | 1 | 0 | 0/(0+1) | 2/(2+0) |
+--------+---------+------------+-------------+------------+---------------+--------------+--------------+-------------