Ответ вслух Middle Series, DataFrame и индекс спрашивают часто обновлено

Зачем нужен индекс в pandas

Вопрос

Зачем в pandas индекс? Когда его стоит ставить через set_index, а когда держать данные в колонках?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Индекс это метки строк. На нём построено главное свойство pandas, выравнивание: при сложении двух Series или присваивании колонки значения сопоставляются по меткам, а не по номерам.

Что должно прозвучать в ответе

  • Индекс это метки строк, по ним идёт выравнивание при арифметике и join

  • Быстрый доступ по метке через `.loc`, срезы по датам у DatetimeIndex

  • Индекс может быть неуникальным и составным (MultiIndex)

  • После groupby ключи уходят в индекс, `reset_index` возвращает их

  • Держать в колонках удобно для merge, фильтров и экспорта

  • Ловушка: неожиданные NaN из-за невыровненных индексов

Что могут спросить следом

  • Что будет при сложении двух Series с разными индексами?
  • Чем join отличается от merge по индексу?
  • Зачем DatetimeIndex для временных рядов?

Разбор

Индекс это метки строк. На нём построено главное свойство pandas, выравнивание: при сложении двух Series или присваивании колонки значения сопоставляются по меткам, а не по номерам. Ещё индекс даёт доступ по метке через .loc и срезы по датам, если это DatetimeIndex, и на нём работают join, resample, unstack. Индекс бывает неуникальным и многоуровневым, MultiIndex появляется после groupby по нескольким ключам. Я ставлю set_index, когда у данных есть естественный ключ и я буду обращаться по нему или это временной ряд. Если же данные дальше идут в merge, фильтры и выгрузку, держу ключи колонками и после агрегатов делаю reset_index. Главная ловушка: невыровненные индексы молча дают NaN, поэтому после склеек проверяю is_unique и количество пропусков.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.