2016-05-28 2 views
3

Учитывая Панду dataframe, где один из столбцов выглядят следующим образом:Получить целое число строк-индекс в dataframe, где столбец соответствует определенному значению

Date 
2016-04-15 
2016-04-14 
2016-04-13 
2016-04-12 
2016-04-11 
2016-04-08 

Как получить строку-индекс конкретного значения при условии, что значения уникальны?

Например, «2016-04-13» вернется 2

+0

Если какой-то ответ был полезным, не забудьте [принять] (http://meta.stackexchange.com/a/5235/295067). – jezrael

ответ

4

Использование df.index.get_loc('2016-04-14') получить тыс e целочисленное местоположение для запрошенной метки. Это вернет 1, поскольку intital начинается с 0. Таким образом, вы можете добавить одну, чтобы получить значение индекса как 2

+0

Не очень Pythonic. @ айхан есть. Наверное, тоже более результативно. – smci

5

С булевой индексации, вы можете нарезать dataframe, чтобы получить только те строки, где дата равна «2016-04-13» и получить индекс среза:

df[df.Date == "2016-04-13"].index 
Out[37]: Int64Index([2], dtype='int64') 

уникальностью предположении, что будет только один элемент в этом массиве, так что вы можете взять 0-й элемент:

df[df.Date == "2016-04-13"].index[0] 
Out[38]: 2 
0

df['Date'].values.tolist().index("2016-04-13") возвратит 2