avatar
Мир аналитика данных
@analysts_world
05.12.2023 11:06
Итак, разберем следующие задачки из тестового на аналитика данных в OZON. Первую часть смотрите тут

⭐️ Задание 2
Для всех строк исходного датасета, сгруппированных по номеру заказа, посчитать среднее значение времени доставки по группе. Результат необходимо добавить в новый столбец датафрейма.
У нас с прошлого задания сформировался датасет df со следующими полями:
user_id, order_number, click2delivery, order_items_sum, retention
Делаем обычную группировку:
orders = (
df
.groupby('order_number')['click2delivery']
.agg(mean_time='mean')
.reset_index()
)

Если мы пишем код в скобочках (), то можно вот так прописывать, перенося точку и метод на отдельные строки.
Ну и присоединим это среднее к основному df :
df = df.merge(orders, how='inner', on='order_number')


⭐️ Задание 3

Отдельной колонкой добавить значения последовательности, начинающейся с 0 и 1, где каждый следующий элемент является суммой двух предыдущих, умноженных на 0.5.
Задаем лист arr, а потом в цикле пока длина листа не составит 10 тыс, добавляем сумму двух предыдущих элементов, умноженных на 0.5:
arr = [0, 1]
while len(arr) < 10_000:
arr.append(sum(arr[-2:]) * 0.5)
df['seq'] = arr

Ну и еще было несколько заданий. 📎 Их найдете в файле юпитер ноутбука 👉 здесь
14
3
💯 2
6 32 3K

Обсуждение 6

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram