Метод set_index
Метод set_index применяется к DataFrame
и устанавливает указанный столбец или столбцы в качестве
индекса таблицы. Первым параметром передаётся название
столбца или список названий. При передаче одного столбца
индексом становится его значения, при передаче нескольких
столбцов создаётся мультииндекс. По умолчанию метод
возвращает новый DataFrame, не изменяя исходный.
Параметр inplace позволяет модифицировать
исходную таблицу. Параметр drop управляет тем,
удалять ли столбец из таблицы после установки его в
качестве индекса (по умолчанию столбец удаляется).
Параметр append позволяет добавить новый
индекс к существующему, создавая мультииндекс.
Параметр verify_integrity проверяет
уникальность значений нового индекса.
Синтаксис
df.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
Пример
Давайте установим столбец 'a' в качестве индекса таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.set_index('a')
print(res)
Результат выполнения кода:
b
a
1 10
2 20
3 30
4 40
5 50
Пример
Давайте установим несколько столбцов в качестве мультииндекса:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [10, 20, 10, 20, 10],
'c': [100, 200, 300, 400, 500]
})
res = df.set_index(['a', 'b'])
print(res)
Результат выполнения кода:
c
a b
1 10 100
20 200
2 10 300
20 400
3 10 500
Пример
Давайте установим индекс, сохранив столбец в таблице
с помощью параметра drop:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.set_index('a', drop=False)
print(res)
Результат выполнения кода:
a b
a
1 1 10
2 2 20
3 3 30
4 4 40
5 5 50
Пример
Давайте изменим исходную таблицу с помощью параметра
inplace:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
df.set_index('a', inplace=True)
print(df)
Результат выполнения кода:
b
a
1 10
2 20
3 30
4 40
5 50
Пример
Давайте добавим новый индекс к существующему с помощью
параметра append:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
df = df.set_index('a')
res = df.set_index('b', append=True)
print(res)
Результат выполнения кода:
Empty DataFrame
a b
1 10
2 20
3 30
4 40
5 50
Смотрите также
-
метод
reset_index,
который сбрасывает индекс в столбец -
метод
reindex,
который изменяет индекс таблицы -
метод
sort_index,
который сортирует индекс -
атрибут
index,
который возвращает индекс таблицы