sashkello sashkello - 1 year ago 125
Python Question

Find element's index in pandas Series

I know this is a very basic question but for some reason I can't find an answer. How can I get the index of certain element of a Series in python pandas? (first occurrence would suffice)

I.e., I'd like something like:

import pandas as pd
myseries = pd.Series([1,4,0,7,5], index=[0,1,2,3,4])
print myseries.find(7) # should output 3

Certainly, it is possible to define such a method with a loop:

def find(s, el):
for i in s.index:
if s[i] == el:
return i
return None

print find(myseries, 7)

but I assume there should be a better way. Is there?

Answer Source
>>> myseries[myseries == 7]
3    7
dtype: int64
>>> myseries[myseries == 7].index[0]

Though I admin that there should be a better way to do that, but this at least avoids iterating and looping through the object and moves it to the C level.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download