DataFrame 10M строк ест 3.5 ГБ. Колонка country содержит ~200 уникальных строковых значений и повторяется массово, колонка count — int64 со значениями 0..500. Как сократить память сильнее всего без потери данных?
Pythonmediummiddle
Проверяет знание Python и pandas для анализа данных.
pandasdtypeпамять
Варианты ответа
country привести к 'category', count — downcast до самого узкого целого через pd.to_numeric(downcast='integer')
country оставить как object, count перевести в float32 для компактности хранения — float32 занимает вдвое меньше, чем int64
country привести к 'category', count оставить в int64 — целочисленный тип уже хранится оптимально и downcast ничего не даст
Применить df.astype('string') ко всему df — новый строковый dtype включает эффективное хранение и для country, и для count
Как разобрать этот вопрос на собеседовании
Подумай, какая структура данных и какой инструмент pandas решают задачу с наименьшей сложностью: векторизация вместо циклов, groupby/merge вместо ручных склеек, корректная работа с NaN и типами. Интервьюер смотрит на читаемость кода и на то, понимаешь ли ты, что происходит «под капотом» — копия или вью, сложность операции, утечки памяти на больших данных.
На собеседовании по такому вопросу важно не только назвать ответ, но и кратко объяснить, почему он верный.
Тема вопроса — «Python». Чтобы подготовиться к похожим задачам, отрабатывай их на практике: python-тренажёр помогает довести навык до автоматизма, а раздел вопросов — увидеть формулировки, которые реально встречаются на интервью аналитика данных.
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
3000+ вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.