Метод get_loc
Метод get_loc применяется к объекту Index
и возвращает целочисленную позицию указанной метки.
Первым параметром передаётся искомая метка. Если метка
не найдена, метод выбрасывает исключение KeyError.
Для мультииндексов можно передать кортеж меток.
Синтаксис
index.get_loc(label)
Пример
Давайте найдём позицию метки 'b' в индексе:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
idx = ser.index
res = idx.get_loc('b')
print(res)
Результат выполнения кода:
1
Пример
Если метка встречается несколько раз, метод возвращает массив всех позиций:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'a', 'b', 'c'])
idx = ser.index
res = idx.get_loc('b')
print(res)
Результат выполнения кода:
array([1, 3])
Пример
При попытке найти отсутствующую метку возникает ошибка:
import pandas as pd
ser = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
idx = ser.index
res = idx.get_loc('z')
print(res)
Результат выполнения кода:
KeyError: 'z'
Пример
Для мультииндекса передаётся кортеж меток:
import pandas as pd
index = pd.MultiIndex.from_tuples([('x', 1), ('y', 2), ('z', 3)])
res = index.get_loc(('y', 2))
print(res)
Результат выполнения кода:
1
Смотрите также
-
метод
get_indexer,
который возвращает позиции для списка меток -
метод
slice_indexer,
который возвращает срез для диапазона меток -
метод
isin,
который проверяет вхождение меток в список -
метод
drop,
который удаляет указанные метки из индекса