Я заядлый игрок в FPL и использую API Fantasy Premier League и Google Таблицы, чтобы упростить анализ данных игроков.

Вы можете разочароваться в том, что вам приходится полагаться на случайные выбросы данных других людей (например, в Fantasy Premier League Reddit), и захотите провести собственный анализ.

Используя API Fantasy Premier League и инструмент для работы с электронными таблицами, мы можем загружать данные об игроках в Google Sheet и фильтровать их по разным выборам, общему счету, очкам за матч и т. Д.

В электронных таблицах замечательно то, что почти каждый знает, как их использовать в той или иной степени, и действительно легко использовать API с Google Таблицами с парой очень небольших изменений в Google Таблицах, так что это не проблема, если вы не технический.

Следующим шагом после этого действительно будет загрузка данных в такой инструмент, как Tableau Public для оценки данных, но пока мы просто хотим получить данные и начать с ними играть. Если будет достаточно спроса на учебник Tableau Public, я напишу и его, поэтому, пожалуйста, хлопайте в ладоши и / или ответьте, если вы хотите это увидеть.

Настроить Google Таблицы

Первое, что мы собираемся сделать, это настроить новый лист в Google Таблицах. Важно использовать Google Sheets, а не что-то вроде Excel, поскольку Google Sheets поддерживает скрипты и, как правило, лучше работает с вещами, которые взаимодействуют с Интернетом, такими как API. Excel на самом деле не был разработан для мира, в котором ему когда-либо придется подключаться к Интернету.

Я использовал здесь несколько технических терминов, поэтому для непосвященных API - это распространенный метод доступа к данным из базы данных (API, который мы будем использовать, используется FPL для создания экранов с информацией об игроках), а JSON - это стандартный формат вывода этих данных. Технологам нравится JSON, потому что он поддерживается множеством различных платформ, имеет простую разметку, а при форматировании его довольно легко читать и запрашивать.

Однако Google Sheets не поддерживает API или JSON из коробки, поэтому нам нужно добавить скрипт, который может принимать URL-адрес API (фид данных Fantasy Premier League) и возвращать нужные нам данные в формате JSON и форматировать их. как электронную таблицу, которую мы можем читать.

Сделать это действительно просто.

Перейдите в Инструменты ›Редактор скриптов.

После этого вы должны увидеть такой экран:

Во-первых, вы хотите удалить все в файле Code.gs, чтобы он оставался пустым:

Далее мы собираемся переименовать файл:

И мы собираемся дать ему имя "ImportJSON".

Теперь ваш экран должен выглядеть так:

Затем перейдите в этот pastebin, скопируйте все туда и вставьте в свой файл ImportJSON. Теперь экран должен выглядеть так:

На этом мы закончили, пора вернуться в нашу таблицу Google и загрузить данные. Щелкните Файл ›Сохранить, чтобы сохранить нашу функцию.

По сути, мы только что добавили в эту таблицу Google новую функцию под названием ImportJSON, которую мы собираемся использовать сейчас.

Вернитесь к своей таблице, которая должна быть открыта на другой вкладке.

Получение данных API Fantasy Premier League с помощью ImportJSON

Теперь мы собираемся извлечь данные из Fantasy Premier League API, используя только что созданную функцию.

В своей электронной таблице скопируйте эту формулу в ячейку A1:

= ImportJSON (« https://fantasy.premierleague.com/drf/bootstrap-static ')

Важно: перед тем, как нажать Enter, скопируйте последнюю кавычку (после bootstrap-static) и замените фигурную кавычку перед https: //, иначе вы получите сообщение об ошибке. Medium автоматически преобразует цитаты в фигурные, которые Google Таблицы не распознают.

Примечание. Этот API официально не документирован и не поддерживается FPL каким-либо образом, и он может изменяться и ломаться, поскольку FPL со временем обновляет свой сайт. Однако эта конкретная конечная точка API работала хорошо последние пару сезонов, так что, надеюсь, она продолжит работать. Если я обнаружу, что он сломан, я зайду и обновлю этот пост.

Измененная формула должна выглядеть так:

Вы узнаете, что это сработало, потому что формула станет зеленой. Затем вы должны нажать Enter. Если вы видите что-либо, кроме того, что указано выше (например, кавычки после формулы), значит, Google Таблицы исказили формулу, и вам следует снова вставить формулу.

После этого в первой ячейке электронной таблицы должно отображаться «Загрузка». Не волнуйтесь, что при наведении курсора появляется сообщение ERROR, Google Sheets просто думает:

Если все сработало, данные должны быть загружены в вашу электронную таблицу, отсортированные по числовому идентификатору каждого игрока. Каждый игрок сохраняет свой идентификатор в течение сезона, и он может быть очень полезен для перекрестных ссылок с другими источниками данных, поэтому я бы не стал удалять поле «Идентификатор элемента».

Анализ данных в Google Таблицах / Excel

Мы почти закончили, но нужно сделать несколько важных шагов, прежде чем мы углубимся в анализ данных.

Первое, что нам нужно сделать, это скопировать эти данные в статическую электронную таблицу. Хотя ImportJSON действительно хорошо извлекает данные из API, у него обычно возникают проблемы с сортировкой и фильтрацией данных.

ImportJSON также имеет неприятную тенденцию продолжать попытки обновить данные, что затрудняет работу с ним и в скором времени приведет к достижению ограничений API. Намного проще (и быстрее) работать со статическим документом, который не пытается постоянно извлекать данные.

Кроме того: полезно, однако, вы можете вернуться в электронную таблицу Google (сохраните ее на своем Google Диске) после каждой игровой недели, и она будет извлекать самые свежие данные. Я бы не советовал делать это во время Gameweek, поскольку все мы знаем, какие проблемы возникают у FPL во время Gameweek.

Однако самый простой способ получить статический лист, с которым вы можете работать, - это просто загрузить данные в виде электронной таблицы Excel. Таким образом, вы сможете использовать Excel для того, в чем он хорош - для обработки относительно больших объемов данных без задержек.

Если вы действительно хотите работать с данными в Google Таблицах, вы всегда можете импортировать данные обратно в Google Таблицы, как я сделал здесь.

Вы увидите, что ячейка A1 теперь имеет номер #NAME, поскольку эта новая таблица не знает, что такое, черт возьми, «= ImportJSON» (функции не передаются при сохранении). Не стесняйтесь изменить это поле на ID.

Заголовки полей должны быть достаточно понятными (и включать несколько очень интригующих заголовков), и как только вы окажетесь в своей статической электронной таблице, вы можете изменить их на все, что захотите.

Вашим первым шагом должна быть настройка некоторых фильтров:

  • Сортировать по очкам за игру (столбец AJ)
  • Преобразуйте столбец AJ в числовой столбец (Формат ›Число) и отфильтруйте строки меньше 4.
  • Преобразуйте «Элементы, выбранные по» в числовой столбец (Формат ›Число) и отфильтруйте, скажем, менее 15% (если вы ищете дифференциалы).

Вы также можете выполнить вычисления в различных столбцах, чтобы разработать свои собственные критерии, настроить условное форматирование, чтобы выделить зеленым цветом игроков, которые соответствуют определенному набору условий, или отфильтровать список, чтобы он соответствовал вашему списку наблюдения на FPL.

Помимо Excel / Google Sheets, следующим шагом будет использование такого инструмента, как Tableau, для построения графиков с использованием данных. Вот некоторые расширенные примеры этого:

Вот и все. Теперь у вас есть данные, чтобы знать, действительно ли стоит тратить деньги на Калверта-Левина или действительно стоит тратить лишние деньги на Агуэро, а не на Иисуса.

Теперь посмотрите на оставшиеся столбцы и отфильтруйте / отсортируйте их по своему вкусу. Даже если вы не дошли до создания диаграмм в Tableau, это должно дать вам некоторые данные, с которыми можно работать, и помочь вам в исследовании ваших выборов.