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