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

Рассмотрим следующий ряд 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]

Ответы

Ответ 1

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

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

Ответ 2

Используйте np.searchsorted -

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

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

s.index.searchsorted('D')

Ответ 3

m = s.index == 'D'
idx = m.argmax() if m.any() else None