Сообщить об ошибке.

Метод DataFrame.set_index() в pandas

Устанавливает столбец DataFrame в качестве индекса

Синтаксис:

df = DataFrame.set_index(keys, *, drop=True, append=False, 
                         inplace=False, verify_integrity=False)

Параметры:

  • keys - может быть ключом одного столбца, одним массивом той же длины, что и вызывающий DataFrame, или списком, содержащим произвольную комбинацию ключей столбцов и массивов. Здесь "массив" включает в себя Series, Index, numpy.ndarray и экземпляры от collections.abc.Iterator.
  • drop=True - удалять ли столбцы, которые будут использоваться в качестве нового индекса.
  • append=False - добавлять ли столбцы в существующий индекс.
  • inplace=False - следует ли изменять DataFrame вместо создания нового.
  • verify_integrity=False - проверять или нет новый индекс на наличие дубликатов. Установка значения False улучшает производительность.

Возвращаемое значение:

  • новый DataFrame с измененными метками строк или None, если inplace=True.

Описание:

Метод DataFrame.set_index() модуля pandas устанавливает индекс DataFrame (метки строк), используя один или несколько существующих столбцов или массивов "правильной длины" (len(DataFrame.index)). Индекс может заменить существующий индекс или расширить его.

Примеры использования DataFrame.set_index()

В примерах используется DataFrame следующего вида:

>>> import pandas as pd

df = pd.DataFrame({'month': [1, 4, 7, 10],
                   'year': [2012, 2014, 2013, 2014],
                   'sale': [55, 40, 84, 31]})

>>> df
#    month  year  sale
# 0      1  2012    55
# 1      4  2014    40
# 2      7  2013    84
# 3     10  2014    31

Установим в качестве индекса DataFrame столбец 'month':

>>> df.set_index('month')
#        year  sale
# month
# 1      2012    55
# 4      2014    40
# 7      2013    84
# 10     2014    31

Создадим MultiIndex, используя столбцы 'year' и 'month':

>>> df.set_index(['year', 'month'])
#             sale
# year  month
# 2012  1     55
# 2014  4     40
# 2013  7     84
# 2014  10    31

Создадим MultiIndex используя объект Index и столбец 'year':

>>> df.set_index([pd.Index([1, 2, 3, 4]), 'year'])
#          month  sale
#    year
# 1  2012  1      55
# 2  2014  4      40
# 3  2013  7      84
# 4  2014  10     31

Создадим MultiIndex с помощью двух Series:

>>> s = pd.Series([1, 2, 3, 4])
>>> df.set_index([s, s**2])
#       month  year  sale
# 1 1       1  2012    55
# 2 4       4  2014    40
# 3 9       7  2013    84
# 4 16     10  2014    31