Вступить в клуб →
сложнаявопросPython и SQL для подготовки данных

Выгрузка событий за год не помещается в память ноутбука

Для модели оттока нужны признаки уровня «клиент-месяц»: число событий, сумма и средний интервал между ними. Исходная таблица событий в ClickHouse — около 15 млн строк за год. Ваш код падает по памяти:

events = pd.read_sql("SELECT * FROM events WHERE dt >= '2025-01-01'", conn)
features = events.groupby(["client_id", "month"]).agg(...)

Какое решение здесь основное?

  • Читать таблицу чанками по 500 тысяч строк и склеивать их в один DataFrame через concat
  • Взять первые 2 млн строк через LIMIT и работать с этой частью данных
  • Посчитать агрегаты запросом с GROUP BY на стороне базы и выгрузить готовую витрину клиент-месяц
  • Запросить машину с большим объёмом памяти, задача по сути требует всех сырых строк

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела