Spec-Zone.ru › pandas 2

pandas.DataFrame.reset_index

DataFrame.reset_index(level=None, *, drop=False, inplace=False, col_level=0, col_fill='', allow_duplicates=<no_default>, names=None)[source]

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

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

Параметры:
level:int, str, tuple, or list, default None

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

drop:bool, default False

Не пытаться вставлять индекс в столбцы DataFrame. Индекс будет сброшен до целочисленного индекса по умолчанию.

inplace:bool, default False

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

col_level:int or str, default 0

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

col_fill:object, default ‘’

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

allow_duplicates:bool, optional, default lib.no_default

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

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

names:int, str or 1-dimensional list, default 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

© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.DataFrame.reset_index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API