2013-06-21 3 views
12

У меня есть панд dataframe:Finding расположение этикетки в индексе DataFrame

import pandas as pnd 
d = pnd.Timestamp('2013-01-01 16:00') 
dates = pnd.bdate_range(start=d, end = d+pnd.DateOffset(days=10), normalize = False) 

df = pnd.DataFrame(index=dates, columns=['a']) 
df['a'] = 6 

print(df) 
        a 
2013-01-01 16:00:00 6 
2013-01-02 16:00:00 6 
2013-01-03 16:00:00 6 
2013-01-04 16:00:00 6 
2013-01-07 16:00:00 6 
2013-01-08 16:00:00 6 
2013-01-09 16:00:00 6 
2013-01-10 16:00:00 6 
2013-01-11 16:00:00 6 

Я заинтересован в найти место для этикеток одной из этикеток, скажем,

ds = pnd.Timestamp('2013-01-02 16:00') 

Глядя на индекс значения, я знаю, что это целочисленное расположение этой метки 1. Как можно получить pandas, чтобы узнать, что такое целочисленное значение этой метки?

+5

Как немного в сторону, традиционный псевдоним для панд является 'pd' :) –

+1

пришел сюда, потому что у меня была противоположная проблема: Дано целое положение в dataframe' df', найти метку в этом положении. После разворачивания он оказался таким: вы можете получить метку в индексной позиции 'n', используя' df.index [n] ' –

ответ

27

Вы ищете индексный метод get_loc:

In [11]: df.index.get_loc(ds) 
Out[11]: 1 
+0

@Jeff, говорящий об обновлении обновления обновления: http://pandas.pydata.org /pandas-docs/dev/enhancingperf.html –

+0

Я видел ... очень приятно! – Jeff

1

Получить dataframe целочисленного индекса заданного даты ключ:

>>> import pandas as pd 

>>> df = pd.DataFrame(
    index=pd.date_range(pd.datetime(2008,1,1), pd.datetime(2008,1,5)), 
    columns=("foo", "bar")) 

>>> df["foo"] = [10,20,40,15,10] 

>>> df["bar"] = [100,200,40,-50,-38] 

>>> df 
      foo bar 
2008-01-01 10 100 
2008-01-02 20 200 
2008-01-03 40 40 
2008-01-04 15 -50 
2008-01-05 10 -38 

>>> df.index.get_loc(df["bar"].argmax()) 
1 

>>> df.index.get_loc(df["foo"].argmax()) 
2 

В колонке баре, индекс максимального значения, 1

В столбце foo индекс максимального значения равен 2

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.get_loc.html

+0

Обратитесь к http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles, чтобы изменить название. –