Тестовое задание
на Aviastats аналитика
Aviasales

Задание #1
Есть "сырые" данные о покупках авиабилетов, которые лежат в `data.csv`. Описаны они полями:

- `booking_id` - ID бронирования
- `booking_month` - месяц покупки билета
- `passengers` - количество пассажиров в бронировании
- `price` - стоимость покупки билета. Причём если пассажиров несколько, то это поле учитывает полную стоимость, а не на 1 пассажира
- `flights_info` - список из всех рейсов в этом билете.

Считаем, что это все рейсы без обратного билета, но по пути могут быть пересадки. Элемент списка - конкретный перелёт.

Список:

[
    {
        "origin": "SVO",
        "destination": "MCT",
        "airline": "WY",
        "baggage": "With baggage"
    },
    {
        "origin": "MCT",
        "destination": "HKT",
        "airline": "WY",
        "baggage": "With baggage"
    }
]
Нужно эти данные привести в такой вид, чтобы на каждый рейс внутри билета была своя отдельная строка. То есть в примере выше этот один билет должен породить 2 строки с рейсом `SVO->MCT` и `MCT->HKT`

При этом таблица должна иметь столбцы:

- `booking_id` - ID бронирования
- `booking_month` - месяц покупки билета
- `itinerary` - маршрут, должен иметь вид `{start airport}-{change airport 1}-...-{change airport N}-{finish airport}`. Для примера выше это будет строка `SVO-MCT-HKT`
- `flights_count` - количество рейсов в маршруте (1, если рейс прямой, и больше 1, если есть хотя бы одна пересадка)
- `flight_id` - ID рейса (можно сгенерировать как хэш функция `md5` от `booking_id` + дополнительный символ (например, можно использовать `flight_index`, описанный ниже))
- `flight_index` - номер рейса в маршруте, начиная с 0. То есть для примера выше рейс `SVO->MCT` имеет индекс `0`, а `MCT->HKT` имеет индекс 1
- `origin` - код аэропорта вылета рейса
- `destination` - код аэропорта прилета рейса
- `airline` - код авиакомпании, выполняющей рейс
- `baggage` - информация о том, является ли тариф билета с багажом или без багажа
- `passengers` - количество пассажиров в билете
- `price` - цена билета (полная)

Можно какие-то столбцы добавить или изменить логику текущих, если есть идеи, как можно сделать данные лучше

Задание #2
По результатам предыдущего задания из сырых данных получен более удобный для аналитики датасет, который можно использовать для исследований данных и визуализаций в дашбордах.

Соберите визуализации либо в ноутбуке, либо дашбордом в любом BI-инструменте со ссылкой на public-версию отчета (например, через Tableau Public и т.д.).

Московский узел
Из Москвы с Питер `LED` можно улететь разными способами

  • Из Шереметьево `SVO`
  • Из Внуково `VKO`
  • Из Домодедово `DME`

Нужно исследовать, как устроен пассажиропоток

  • Как он распределен между этими московскими аэропортами?
  • Какая динамика в году по пассажиропотоку? Если есть какие-то изменения в трафике, то чем их можно объяснить?
  • Конкуренция есть не только у аэропортов, но и у авиакомпаний. Как распределить трафик между ними для каждого аэропорта?
  • Цены какой авиакомпании являются наиболее выгодными? Какой самый дешёвый способ улететь на самолёте из Москвы в Питер?
  • Какая авиакомпания зарабатывает больше всех (в сумме и в среднем на одном пассажире)? Можно считать, что выручка авиакомпании - это сумма цен билетов
хочешь поделиться решением или заданием с собеседования?

Оставь свои контакты через форму, и я свяжусь с тобой в течение 24 часов
© No Data No Growth, 2024