Pandas DataFrame с колонкой city (object dtype, 10M строк, 50 уникальных значений) занимает 600 MB памяти. Как уменьшить память без потери данных?
Pythonhardsenior
Проверяет знание Python и pandas для анализа данных.
Варианты ответа
Конвертировать в category dtype — будет ≈10 MB вместо 600 (хранится как индексы + dictionary 50 значений)
Использовать chunked reading через pd.read_csv(chunksize=) — но это не решит размер уже загруженного DataFrame в памяти
Делать gzip-compress на отдельную колонку через pandas API — внутри pandas нельзя, требуется внешняя сериализация в parquet
Уменьшить precision колонки до object[10] (truncate до 10 символов) — pandas не поддерживает такую модификацию dtype
Как разобрать этот вопрос на собеседовании
Подумай, какая структура данных и какой инструмент pandas решают задачу с наименьшей сложностью: векторизация вместо циклов, groupby/merge вместо ручных склеек, корректная работа с NaN и типами. Интервьюер смотрит на читаемость кода и на то, понимаешь ли ты, что происходит «под капотом» — копия или вью, сложность операции, утечки памяти на больших данных.
Это вопрос продвинутого уровня — на собеседовании по нему обычно идут уточняющие follow-up вопросы, поэтому держи в голове крайние случаи и альтернативные решения.
Тема вопроса — «Python». Чтобы подготовиться к похожим задачам, отрабатывай их на практике: python-тренажёр помогает довести навык до автоматизма, а раздел вопросов — увидеть формулировки, которые реально встречаются на интервью аналитика данных.
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
3000+ вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.