Найти числовую позицию не числового значения индекса

Рассмотрим серию s ниже:

s = pd.Series(np.arange(18, 0, -3), list('ABCDEF'))
s

A    18
B    15
C    12
D     9
E     6
F     3
dtype: int32

Я хочу получить числовую позицию 'D'

Это сделает это, но я думаю, что мы все можем согласиться, что это грубо:

s.reset_index().index.to_series()[s.reset_index().iloc[:, 0] == 'D'].iloc[0]

3 ответа

Решение

Ты можешь использовать Index.get_loc:

print(s.index.get_loc('D'))
3

Использование np.searchsorted -

np.searchsorted(s.index.values,'D')

Или используйте метод, например, так -

s.index.searchsorted('D')
m = s.index == 'D'
idx = m.argmax() if m.any() else None
Другие вопросы по тегам