DataFrame.set_index()

Метод set_index() назначает один или несколько столбцов в качестве индекса DataFrame. Удобно для ускоренного поиска через loc, временных рядов и иерархических данных.

Сигнатура

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

Параметры

  • keys — имя столбца, Index или список.

  • drop — удалить столбец из тела (True) или оставить.

  • append — добавить к существующему индексу (MultiIndex).

  • verify_integrity — проверка на уникальность.

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

Новый DataFrame (или None при inplace=True).

Примеры

Пример 1. Один столбец в индекс

import pandas as pd

df = pd.DataFrame({
    "ts":   [0, 1, 2],
    "temp": [22, 23, 24],
})
print(df.set_index("ts"))
    temp
ts
0     22
1     23
2     24

Пример 2. MultiIndex из двух столбцов

import pandas as pd

df = pd.DataFrame({
    "sensor": ["A", "A", "B"],
    "ts":     [0, 1, 0],
    "temp":   [22, 23, 25],
})
print(df.set_index(["sensor", "ts"]))
           temp
sensor ts
A      0     22
       1     23
B      0     25

Пример 3. drop=False — оставить столбец

import pandas as pd

df = pd.DataFrame({"id": [1, 2], "v": [10, 20]})
print(df.set_index("id", drop=False))
    id   v
id
1    1  10
2    2  20

Пример 4. Проверка уникальности

import pandas as pd

df = pd.DataFrame({"k": [1, 1, 2], "v": [10, 20, 30]})
try:
    df.set_index("k", verify_integrity=True)
except ValueError as e:
    print("ошибка:", str(e)[:50])
ошибка: Index has duplicate keys: Index([1], dtype='int

Пример 5. append — добавить к существующему индексу

import pandas as pd

df = pd.DataFrame({"a": [1, 2], "b": [3, 4], "v": [10, 20]})
df = df.set_index("a")
print(df.set_index("b", append=True))
      v
a b
1 3  10
2 4  20

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.