Попробуйте нарезать ваш фрейм данных на основе переменной даты событий.Затем вы можете использовать функцию groupby
для вспомогательного столбца.Чтобы получить вспомогательный столбец:
df['aux'] = df.apply(lambda x: '_'.join(sorted([x['Winner'], x['Loser']])), axis = 1)
После группировки вы можете использовать группы для расчета любых статистических данных по ним (например, упомянутых вами).
Если вы хотите получить совокупную статистику для всей истории, вы можете использовать cumsum
и аналогичные функции для групп (если вы гарантируете, что данные были отсортированы на основе метки времени события).
Пожалуйста, дайте мне знать, если что-то все еще неясно или вы застряли.