找到非数字索引值的数字位置

时间:2016-07-18 16:36:24

标签: python numpy pandas

考虑以下系列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 个答案:

答案 0 :(得分:8)

您可以使用Index.get_loc

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

答案 1 :(得分:4)

使用np.searchsorted -

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

或者像这样使用方法 -

s.index.searchsorted('D')

答案 2 :(得分:3)

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