Три способа ускорить работу аналитика данных и сделать неочевидные выводы. На примере рынка общепита

С помощью «Дадаты» аналитик обогатила базу данных, определила наиболее конкурентные локации на рынке общепита и визуализировала плотность заведений на карте. В этой статье покажем, как она это сделала.

Представьте, человек решил открыть кафе в Москве, но пока не понимает, где и какое заведение делать:

  • семейный итальянский ресторан или лапшичную на фудкорте;
  • в центре или в спальном районе;
  • сколько столов поставить;
  • с какого времени в какое время открываться и до скольки работать.

Чтобы определиться с расположением и концепцией, полезно изучить рынок общепита — посмотреть, сколько, где и каких заведений уже открыли в городе. Иначе кафе может оказаться невостребованным.

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

Или человек открыл кафе на 100 посадочных мест в новом районе. Жителей мало, посетители занимают максимум 30 столов. В итоге владелец платит аренду за бесполезную площадь.

Изучать рынок общепита помогает аналитик данных. Он собирает информацию о заведениях, ищет закономерности в найденных данных и приносит выводы владельцу будущего кафе. Как раз такую задачу получила Настя Березина — будущий аналитик. 

Исходные данные и ограничения

К задаче приложили базу данных с объектами общепита Москвы. Внутри:

  • названия заведений,
  • адреса,
  • количество посадочных мест,
  • пометка — сетевое заведение или нет,
  • тип объекта — кафе, бар, ресторан, фаст-фуд или столовая.

1. Вытащить улицы из строки адреса, чтобы работать с ними по отдельности

Заказчики попросили аналитика найти 10 улиц Москвы с наибольшим числом заведений. 

Сложность в том, что в исходной базе данных нет колонки с улицами — только с целыми адресами. Поэтому сперва нужно выделить улицу из адреса. Часто такую задачу решают в Excel — разделяют строку адреса на колонки по запятой между компонентами: городом, улицей и номером дома. Но для исходной базы объектов общепита такой способ не годился, потому что адреса там записали в разных форматах.

Скажем, аналитик разделит по запятой адрес «город Москва, Зеленоградская улица, дом 11». Во второй колонке окажется «Зеленоградская улица».  

Но в базе также попадаются адреса типа «город Москва, город Зеленоград, Яблоневая аллея, дом 2». Если разделить такой адрес по запятой, во второй колонке окажется «город Зеленоград» вместо «Яблоневой аллеи». С такой базой невозможно работать.

Настя, аналитик из нашей статьи, выделила улицу из адреса с помощью регулярного выражения. Это специальный код, который удалил из строк адреса все, кроме улицы.

Осталось посчитать количество заведений на каждой улице

Такую задачу можно решить с помощью API-метода «Стандартизация адресов» «Дадаты». Он разделит адреса в базе на компоненты — быстрее самописных формул и точнее регулярных выражений. Так аналитик данных сэкономит время и избежит ошибок.

В регулярном выражении Настя перечислила синонимы слова «улица» — «переулок», «шоссе», «проезд» и т. д. Это нужно, чтобы вместе с названием улицы выделить ее тип — не «Абрамцевская», а «Абрамцевская улица». 

При этом аналитик упомянула не все типы улиц, которые встречаются в российских адресах. Не хватает, например, «спуска». Будь в базе адрес «г Омск, 4-й Ремесленный спуск, д 71», регулярное выражение вернуло бы название без типа улицы — «4-й Ремесленный» вместо «4-й Ремесленный спуск».

«Дадата» же знает все типы улиц, которые записали в ФИАС — базу адресов, которую составляет налоговая. Это самый полный перечень российских адресов из общедоступных. Поэтому сервис без проблем выделит название улицы с ее типом:

2. Автоматически определить район для улицы, чтобы выяснить наиболее конкурентные локации в городе

Заказчики также попросили определить районы Москвы, в которых расположены улицы с наибольшим числом заведений. Так владелец кафе узнает конкурентные локации, в которых, возможно, не стоит открывать очередное заведение.

В исходной базе нет районов, нужно их искать.

Например, вручную — в картах «Яндекса». Заказчики попросили узнать районы для 10 улиц, поэтому задача не займет много времени. А вот на механический перебор, скажем, 1000 улиц уйдут часы работы.   

Или найти в интернете список улиц с привязкой к районам и обогатить данными исходную базу.

Аналитик Настя искала районы автоматически — с помощью API-метода «Стандартизация адресов» «Дадаты». Он приводит адреса к единому формату, исправляет ошибки и обогащает дополнительной информацией. В том числе находит район города:

К API Настя обращалась на языке Python — взяла готовый пример запроса из документации и дописала часть кода. Так, чтобы в ответе «Дадата» выводила только район города вместо 200 строк информации об адресе.

Получился цикл. Он поочередно отправил улицы «Дадате», получил район для каждой и записал в базу данных 

3. Определить геокоординаты для адресов, чтобы визуализировать плотность объектов на карте

Настя решила пойти дальше — найти геокоординаты заведений на самых популярных улицах и показать объекты общепита на карте. 

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

В Москве улицы часто тянутся через десяток районов. Например, Проспект Мира проходит сразу через районы Марьина Роща, Ростокино, Алексеевский, Мещанский, Останкинский, Свиблово и Ярославский.

Если взять кафе на Проспекте Мира и учесть его в каждом районе, через которые проходит улица, получится искаженная статистика. Будто заведение работает одновременно в семи районах вместо одного.

В результате аналитик завысит число мест в этих районах и порекомендует не открывать там кафе из-за высокой конкуренции. На деле же окажется, что большинство заведений на Проспекте Мира работают в Мещанском районе, а в Алексеевском конкуренция низкая — можно открывать новое кафе.

Поэтому для наглядности полезно составить график плотностей — отметить заведения на карте и посмотреть, как места распределены по улице.

Искать координаты вручную — не вариант. На популярных улицах работает около 1500 заведений. Понадобятся десятки часов, чтобы определить широту и долготу для каждого.

Настя нашла координаты объектов общепита автоматически с помощью API-метода «Стандартизация адресов» «Дадаты» — он определяет широту и долготу, на которой расположены дома:

Аналитик написала цикл, который отправлял адреса заведений «Дадате», получал координаты и записывал в базу данных. Затем загрузила широту и долготу в Plotly — библиотеку для Python, которая отображает точки на карте. Получился график плотностей:

На Ленинском проспекте ближе к МКАДу опасно открывать кафе из-за высокой конкуренции. А вот ближе к центру такой проблемы нет. Без визуализации это неочевидно 

Результат

Аналитик Настя Березина выяснила топ-10 улиц в Москве по количеству заведений. И с помощью «Дадаты» определила районы, в которых работает большинство объектов общепита:

  • проспект Мира — Марьина роща,
  • Профсоюзная улица — Ясенево,
  • Ленинградский проспект — Сокол,
  • Пресненская набережная — Пресненский,
  • Варшавское шоссе — Нагорный,
  • Ленинский проспект — Теплый Стан,
  • проспект Вернадского — Раменки,
  • Кутузовский проспект — Дорогомилово,
  • Каширское шоссе — Орехово-Борисово Северное,
  • Кировоградская улица — Чертаново Южное.

Интересно, что в центре расположены только три района из списка: Марьина Роща, Пресненский и Дорогомилово. Большинство же заведений работают в районах на окраине. Возможно, это нетуристические места, например, фаст-фуды и столовые. Аналитику предстоит это выяснить.

Подключить API стандартизации адресов

«Стандартизация» автоматически проверит адреса, которые уже лежат в базе. Сервис:

  • исправляет ошибки в адресах;
  • приводит адреса к единому формату;
  • разбивает адреса по отдельным полям (регион, город, улица, дом, квартира);
  • рассчитывает корректный индекс по данным Почты России;
  • определяет координаты;
  • показывает округ и район города, ближайшее метро, площадь и стоимость квартиры;
  • достает коды КЛАДР, ФИАС, ОКАТО, ОКТМО и ИФНС.

Цена — 15 копеек за запрос. Например, базу в 1000 адресов «Стандартизация» очистит за 150 ₽.

Не пропускайте важные материалы

Подпишитесь в соцсетях

Публикуем ссылку на статью, как только она выходит. А еще даём знать о новых фичах и срочных новостях. Например, напишем, если налоговая потеряет данные по организациям в свежей выгрузке или API «Дадаты» перестанет отвечать.

Подпишитесь на рассылку

Раз в месяц присылаем на почту новые статьи из блога и обновления сервисов «Дадаты». Не тревожим без повода и не шлем спам.