I want to search for ‘row3’ in the index of the DataFrame below, which should be 2 for a zero-based array.
import numpy as np import pandas as pd rownames = ['row1', 'row2', 'row3', 'row4', 'row5'] colnames = ['col1', 'col2', 'col3', 'col4'] # Create a 5 row by 4 column array of integers from 0 to 19 integers = np.arange(20).reshape((5, 4)) table = pd.DataFrame(integers, index=rownames, columns=colnames)
Is there a function which return the row number of ‘row3’? Thanks in advance for any help.
Advertisement
Answer
You could use Index.get_loc
(docs):
>>> table.index.get_loc("row3") 2 >>> table.iloc[table.index.get_loc("row3")] col1 8 col2 9 col3 10 col4 11 Name: row3, dtype: int64 >>> table.loc["row3"] col1 8 col2 9 col3 10 col4 11 Name: row3, dtype: int64
But this is a somewhat unusual access pattern– never need it myself.