Использовать индекс после фильтрации:
df[df.item == 'alcohol'].index
Index(['row 2'], dtype='object')
Если вы хотите, чтобы вывод был 2
, тогда:
indices = df[df.item == 'alcohol'].index
indices.str[-1:]
Index(['2'], dtype='object')
Если хотите список:
indices.str[-1:].tolist()
['2']
Если номер строки больше 1 цифры, используйте:
indices.extract(r'(\d+)',expand=False)
Начальная настройка:
df = pd.DataFrame({"index":[23,45,89],"item":['food','alcohol','drinks']},
index=['row 1','row 2','row 3'])
df
index item
row 1 23 food
row 2 45 alcohol
row 3 89 drinks