pandas.DataFrame.reset_index#

DataFrame.reset_index(level=None, *, drop=False, inplace=False, col_level=0, col_fill='', allow_duplicates=, names=None)[источник]#

Сбросить индекс или его уровень.

Сбросить индекс DataFrame и использовать стандартный вместо него. Если DataFrame имеет MultiIndex, этот метод может удалить один или несколько уровней.

Параметры:
уровеньint, str, tuple или list, по умолчанию None

Удалять только указанные уровни из индекса. По умолчанию удаляет все уровни.

dropbool, по умолчанию False

Не пытаться вставить индекс в столбцы dataframe. Это сбрасывает индекс к стандартному целочисленному индексу.

inplacebool, по умолчанию False

Следует ли изменять DataFrame вместо создания нового.

col_levelint или str, по умолчанию 0

Если столбцы имеют несколько уровней, определяет, на какой уровень вставляются метки. По умолчанию они вставляются на первый уровень.

col_fillobject, по умолчанию ''

Если столбцы имеют несколько уровней, определяет, как называются другие уровни. Если None, то имя индекса повторяется.

allow_duplicatesbool, опционально, по умолчанию lib.no_default

Разрешить создание дублирующихся меток столбцов.

Добавлено в версии 1.5.0.

namesint, str или одномерный список, по умолчанию None

Используя данную строку, переименуйте столбец DataFrame, который содержит данные индекса. Если DataFrame имеет MultiIndex, это должен быть список или кортеж длиной, равной количеству уровней.

Добавлено в версии 1.5.0.

Возвращает:
DataFrame или None

DataFrame с новым индексом или None, если inplace=True.

Смотрите также

DataFrame.set_index

Противоположность reset_index.

DataFrame.reindex

Изменение на новые индексы или расширение индексов.

DataFrame.reindex_like

Изменить на те же индексы, что и у другого DataFrame.

Примеры

>>> df = pd.DataFrame([('bird', 389.0),
...                    ('bird', 24.0),
...                    ('mammal', 80.5),
...                    ('mammal', np.nan)],
...                   index=['falcon', 'parrot', 'lion', 'monkey'],
...                   columns=('class', 'max_speed'))
>>> df
         class  max_speed
falcon    bird      389.0
parrot    bird       24.0
lion    mammal       80.5
monkey  mammal        NaN

При сбросе индекса старый индекс добавляется как столбец, а новый последовательный индекс используется:

>>> df.reset_index()
    index   class  max_speed
0  falcon    bird      389.0
1  parrot    bird       24.0
2    lion  mammal       80.5
3  monkey  mammal        NaN

Мы можем использовать drop параметр, чтобы избежать добавления старого индекса как столбца:

>>> df.reset_index(drop=True)
    class  max_speed
0    bird      389.0
1    bird       24.0
2  mammal       80.5
3  mammal        NaN

Вы также можете использовать reset_index с MultiIndex.

>>> index = pd.MultiIndex.from_tuples([('bird', 'falcon'),
...                                    ('bird', 'parrot'),
...                                    ('mammal', 'lion'),
...                                    ('mammal', 'monkey')],
...                                   names=['class', 'name'])
>>> columns = pd.MultiIndex.from_tuples([('speed', 'max'),
...                                      ('species', 'type')])
>>> df = pd.DataFrame([(389.0, 'fly'),
...                    (24.0, 'fly'),
...                    (80.5, 'run'),
...                    (np.nan, 'jump')],
...                   index=index,
...                   columns=columns)
>>> df
               speed species
                 max    type
class  name
bird   falcon  389.0     fly
       parrot   24.0     fly
mammal lion     80.5     run
       monkey    NaN    jump

Используя names параметр, выберите имя для столбца индекса:

>>> df.reset_index(names=['classes', 'names'])
  classes   names  speed species
                     max    type
0    bird  falcon  389.0     fly
1    bird  parrot   24.0     fly
2  mammal    lion   80.5     run
3  mammal  monkey    NaN    jump

Если индекс имеет несколько уровней, мы можем сбросить подмножество из них:

>>> df.reset_index(level='class')
         class  speed species
                  max    type
name
falcon    bird  389.0     fly
parrot    bird   24.0     fly
lion    mammal   80.5     run
monkey  mammal    NaN    jump

Если мы не удаляем индекс, по умолчанию он размещается на верхнем уровне. Мы можем разместить его на другом уровне:

>>> df.reset_index(level='class', col_level=1)
                speed species
         class    max    type
name
falcon    bird  389.0     fly
parrot    bird   24.0     fly
lion    mammal   80.5     run
monkey  mammal    NaN    jump

Когда индекс вставляется под другим уровнем, мы можем указать под каким именно с помощью параметра col_fill:

>>> df.reset_index(level='class', col_level=1, col_fill='species')
              species  speed species
                class    max    type
name
falcon           bird  389.0     fly
parrot           bird   24.0     fly
lion           mammal   80.5     run
monkey         mammal    NaN    jump

Если мы укажем несуществующий уровень для col_fill, он создается:

>>> df.reset_index(level='class', col_level=1, col_fill='genus')
                genus  speed species
                class    max    type
name
falcon           bird  389.0     fly
parrot           bird   24.0     fly
lion           mammal   80.5     run
monkey         mammal    NaN    jump