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.