По умолчанию для DataFrame создается индекс. Но при необходимости вы можете установить определенный столбец DataFrame в качестве индекса.
Чтобы установить столбец в качестве индекса, используйте функцию set_index() с именем столбца, переданным в качестве аргумента.
Вы также можете настроить MultiIndex с несколькими столбцами в индексе. В этом случае передайте массив имен столбцов, необходимых для индекса, в метод set_index().
Синтаксис
Синтаксис set_index() для установки столбца в качестве индекса:
myDataFrame.set_index('column_name')
Где, myDataFrame – это DataFrame, для которого вы хотите установить столбец column_name в качестве индекса.
Чтобы настроить MultiIndex, используйте следующий синтаксис.
myDataFrame.set_index(['column_name_1', column_name_2])
Вы можете передать сколько угодно имен столбцов.
Обратите внимание, что метод set_index() не изменяет исходный DataFrame, но возвращает его со столбцом, установленным в качестве индекса.
Пример 1
В этом примере мы возьмем DataFrame и попытаемся установить столбец в качестве индекса.
import pandas as pd
#initialize a dataframe
df = pd.DataFrame(
[[21, 'Amol', 72, 67],
[23, 'Lini', 78, 69],
[32, 'Kiku', 74, 56],
[52, 'Ajit', 54, 76]],
columns=['rollno', 'name', 'physics', 'botony'])
print('DataFrame with default index\n', df)
#set column as index
df = df.set_index('rollno')
print('\nDataFrame with column as index\n',df)
Вывод:

Колонка rollno DataFrame устанавливается, как index.
Также обратите внимание на вывод исходного DataFrame и выход DataFrame с rollno в качестве индекса. В исходном есть отдельный столбец индекса (первый столбец) без имени столбца. Но в нашем втором DataFrame, этот столбец занял первое место, поскольку существующий столбец действует как индекс.
Пример 2
В этом примере мы передадим несколько имен столбцов в виде массива методу set_index() для настройки MultiIndex.
import pandas as pd
#initialize a dataframe
df = pd.DataFrame(
[[21, 'Amol', 72, 67],
[23, 'Lini', 78, 69],
[32, 'Kiku', 74, 56],
[52, 'Ajit', 54, 76]],
columns=['rollno', 'name', 'physics', 'botony'])
print('DataFrame with default index\n', df)
#set multiple columns as index
df = df.set_index(['rollno','name'])
print('\nDataFrame with MultiIndex\n',df)
Вывод:
D:\>python example1.py
DataFrame with default index
rollno name physics botony
0 21 Amol 72 67
1 23 Lini 78 69
2 32 Kiku 74 56
3 52 Ajit 54 76
DataFrame with MultiIndex
physics botony
rollno name
21 Amol 72 67
23 Lini 78 69
32 Kiku 74 56
52 Ajit 54 76
В этом руководстве по Pandas мы узнали, как установить определенный столбец DataFrame в качестве индекса.