Сброс индекса в Pandas: как сбросить индекс в Pandas
Добро пожаловать в этот учебник по сбросу индекса Pandas DataFrame. В этом посте вы узнаете, как использовать мощный метод .reset_index()
Pandas для уточнения индекса вашего DataFrame, создания чистых структур данных для ваших аналитических и моделировочных задач и открытия более глубоких инсайтов из ваших данных.
Перезагрузка и работа с индексом в Pandas - это то, с чем я сталкиваюсь каждый день, работая с Pandas. Это руководство охватывает мои любимые способы сброса индекса – все они проверены и испытаны! Мы рассмотрим важные темы, такие как:
Как работает
.reset_index()
и когда его использоватьКак сбросить индекс и удалить исходный столбец
Как удалить индекс в многоиндексном DataFrame
Как сбросить индекс на месте
Будь вы новичок в Pandas или продвинутый пользователь, стремящийся улучшить свои навыки индексации, эта инструкция предоставит вам необходимые знания и опыт для легкого выполнения сложных операций с индексацией. Давайте погрузимся в изучение метода reset_index()
библиотеки Pandas, который позволяет сбросить индекс вашего DataFrame.
Быстрый ответ: различные способы сброса индекса
Оглавление
Загрузка образца фрейма данных
Чтобы следовать этому руководству, я предоставил ниже пример Pandas DataFrame. Вы, конечно, можете использовать свой собственный набор данных, хотя ваши результаты могут отличаться. Я намеренно сделал набор данных максимально простым, чтобы вам было легче следовать за инструкциями.
В приведенном выше блоке кода мы загрузили Python словарь в DataFrame. Затем мы применили метод .set_index()
к DataFrame, чтобы получить более значимый индекс.
Как сбросить индекс DataFrame в Pandas
В этом разделе мы подробнее рассмотрим, как работает метод .reset_index()
и когда его следует использовать в задачах анализа данных.
Понимая тонкости метода .reset_index()
, вы сможете преобразовать ваши данные в чистые, структурированные и более интуитивно понятные фреймы данных, которые лучше подходят для ваших задач.
Давайте рассмотрим синтаксис метода:
Давайте рассмотрим, что делают различные параметры:
level=
Позволяет нам указать уровни многоиндексного DataFrame. По умолчанию он сбрасывает все уровни.
None
drop=
Позволяет нам указать, что исходный индекс должен быть удален (а не вставлен как новый столбец DataFrame).
False
inplace=
Следует ли изменять DataFrame вместо создания нового.
False
col_level=
Позволяет нам указать, на какой уровень должны быть вставлены метки столбцов, если они имеют несколько уровней.
0
col_fill=
Позволяет указать, если DataFrame имеет несколько уровней, чем должны быть заполнены другие уровни. Если передано None, имя индекса повторяется.
”
Теперь, когда мы знаем, как метод работает в теории, давайте попрактикуемся, как мы можем на самом деле сбросить индекс.
Это возвращает следующие DataFrames:
Давайте более подробно рассмотрим, как мы использовали метод .reset_index()
для сброса индекса и включения его в набор данных:
Мы создали DataFrame и распечатали его оригинальную версию. В ней видно, что у DataFrame есть именованный индекс
Мы затем применяем метод
.reset_index()
к DataFrame, не передавая никаких аргументов.Это возвращает DataFrame, в который исходный индекс добавлен в DataFrame как столбец.
Теперь давайте посмотрим, как мы можем сбросить индекс в Pandas и удалить значения исходного столбца.
Как удалить индекс DataFrame в Pandas
По умолчанию Pandas преобразует исходный индекс в столбец DataFrame. Это может не всегда соответствовать вашим ожиданиям. К счастью, Pandas предлагает полезный параметр, drop=
, который позволяет нам удалить исходный индекс
По умолчанию параметр будет установлен в значение False
, что означает, что оригинальный индекс не будет удален. Если установить параметр в значение drop=True
, то оригинальный индекс не будет вставлен в DataFrame в качестве столбца.
Давайте посмотрим, как выглядят эти DataFrame:
Как видно выше, когда мы сбрасываем индекс и устанавливаем drop=True
, оригинальный индекс не был добавлен в DataFrame в качестве столбца.
В следующем разделе вы узнаете, как сбросить индекс Pandas на месте, то есть вам не нужно будет его переназначать.
Как сбросить индекс Pandas на месте
В предыдущих разделах этого руководства мы сбрасывали индекс и всегда переприсваивали DataFrame самому себе. Мы делали это потому что метод возвращает сам DataFrame.
Однако не всегда может возникнуть желание повторно присваивать DataFrame. По этой причине Pandas позволяет сбрасывать индекс Pandas на месте, используя параметр inplace=
. По умолчанию этот параметр будет установлен в
Однако вы можете установить параметр в значение True
, чтобы не приходилось повторно присваивать DataFrame.
Одно из преимуществ использования inplace=True
заключается в том, что это может экономить память, модифицируя оригинальный объект вместо создания нового. Это может быть важно при работе с очень большими наборами данных, где использование памяти является обеспокоенностью.
Одним из недостатков этого подхода является ухудшение читаемости кода. Поскольку многие операции в Pandas могут выполняться на месте, очень важно придерживаться консистентности. Лично я рекомендую повторно присваивать DataFrame самому себе, если только я не работаю с особенно большим набором данных.
Давайте посмотрим, как можно удалить индекс DataFrame в Pandas на месте:
Запуск этого кода возвращает следующие DataFrames.
Как мы видим из предыдущего вывода, индекс DataFrame был удален на месте. Это означает, что результат выглядит так же, как и то, что мы видели ранее. В следующем разделе вы научитесь сбрасывать многоуровневый индекс Pandas — приступим!
Как сбросить многоуровневый индекс Pandas
При работе с Pandas DataFrames с многоуровневым индексом, управление и манипулирование структурой индексации ваших данных может показаться сложной задачей. К счастью, метод .reset_index()
может помочь упростить индексацию вашего DataFrame с многоуровневым индексом, позволяя сжать один или несколько уровней индекса в один столбец или даже полностью убрать индекс.
В этом разделе вы научитесь сбрасывать индекс в DataFrame Pandas с несколькими индексами, чтобы вы могли перестроить уровни DataFrame в соответствии с вашими потребностями анализа или экспортировать данные в другие приложения. Давайте начнем с загрузки нового образца DataFrame:
Здесь мы видим два индекса. Сбросить их легко - это происходит так же, как если бы был только один индекс. Это потому что значения аргументов по умолчанию позволяют нам сбросить все уровни (используя level=None
) и заполнить пропущенные значения с помощью col_fill=''
Благодаря этим параметрам по умолчанию, когда мы используем метод .reset_index()
, мы получаем ожидаемые результаты!
Это возвращает следующий DataFrame:
Из приведенных выше блоков кода видно, что индексные столбцы были сброшены и добавлены в DataFrame в виде столбцов. В исходном многоуровневом индексе повторяющиеся значения в столбцах не отображались. Однако в результирующем DataFrame эти значения дублируются вниз.
В следующем разделе вы узнаете, как сбросить только один уровень мультииндексного DataFrame.
Как сбросить только один уровень многоуровневого индекса Pandas
При работе с DataFrame в Pandas с многоуровневым индексом не всегда требуется сбрасывать все уровни индексов. К счастью, Pandas предлагает мощную функцию, которая позволяет выборочно сбрасывать определенные уровни многоуровневого индекса вашего DataFrame. Эта функция называется параметромlevel=
Используя параметр level=
, вы можете нацелиться на определённые уровни индекса и сбросить только их, оставляя другие уровни без изменений. Это может быть особенно полезно, когда вам нужно сохранить определённые иерархические группировки в ваших данных, но хотите переорганизовать другие уровни структуры индексации.
Это возвращает следующий DataFrame:
При выполнении метода .reset_index(level = 1)
на данном DataFrame мы выборочно сбрасываем второй уровень мультииндекса, то есть ‘Name’, превращая его из мультиуровневого индекса в одиночный индекс, при этом уровень ‘Gender’ остается без изменений.
Заключение
Поздравляем! Вы научились как профессионал сбрасывать индексы DataFrame в Pandas! В этом учебнике мы начали с основ и рассмотрели некоторые из самых важных и практических применений метода .reset_index()
в Pandas.
Будь вы опытным аналитиком данных или только начинаете работать с Python и Pandas, овладение методом .reset_index()
является обязательным при работе со сложными структурами данных.
Итак, что дальше? Попробуйте самостоятельно экспериментировать с функцией .reset_index()
на своих фреймах данных и изучить влияние различных значений параметров, таких как параметр level
. Кроме того, вы можете исследовать другие функции Pandas, дополняющие .reset_index()
, например, .set_index()
, чтобы дальше совершенствовать и манипулировать вашими структурами данных.
Чтобы узнать больше о методе reset_index()
в Pandas, ознакомьтесь с официальной документацией здесь.
Дополнительные ресурсы
Чтобы узнать больше о смежных темах, ознакомьтесь с нижеприведенными ресурсами:
Индекс переименования Pandas: как переименовать индекс Dataframe Pandas
Индексирование, выбор и присвоение данных в Pandas
Last updated