В истории UFC не часто происходили поединки, решения по которым не приняты. В этой статье речь пойдет именно о таких схватках.
Анализ будем проводить на основании скачанных с сайта ufcstats.com данных по всем встречам в рамках главного и предварительного кардов промоушена (по 19.12.2020 включительно). Сразу отмечу, что освещаемые на этом канале выводы имеют статистическую природу и лишены субъективной интерпретации. Для их получения будем использовать продвинутые средства обработки данных на языке Python.
Данные по поединкам находятся в таблице ufc_fights, имеющей 5925 строк и 205 столбцов:
Об отсутствии результата схватки сигнализируют столбцы Win_lose_left и Win_lose_right, которые в этом случае содержат значение 'NC' (no contest). Для выборки таких столбцов можно воспользоваться оператором loc DataFrame (подробнее прием описывал здесь):
Фрагмент u_nc будет иметь следующий вид:
Таблица состоит из 62 строк и 205 столбцов:
Определим, в каких турнирах (столбец Event) чаще всего отсутствовали решения по боям. Для этого сгруппируем u_nc по Event и выведем количество элементов в каждой группе (дополнительно столбец количества переименован в kol и произведена сортировка значений по убыванию) :
Итак, в двух турнирах отмечено по два безрезультатных боя. Теперь определим, какие это поединки. Для этого сначала составим списки из названий этих турниров. u_nc_most - это Series (грубо говоря, столбец), в котором в качестве индекса выступают названия турниров, а значений - количество. Так мы выберем фрагмент Series, для которого количество равно 2:
Если обратиться к свойству index данного объекта получим:
Применив функцию list, получим список названий турниров:
Теперь, чтобы вывести названия безрезультатных поединков с данных турниров можно воспользоваться командой:
Т.е. мы сделали выборку из таблицы безрезультатных поединков, для которых поле названия турнира (Event) находится в построенном ранее списке.
Для получения