2014-05-05 181 views
2

我具有由datetime對象索引的數據幀:日期時間範圍索引:可能不在索引中的日期時間?

In <10>: all_data.head().index 
Out<10>: 
Index([2014-04-23, 2014-04-13, 2014-04-15, 2014-04-30, 2014-04-06], dtype='object') 

和兩個時間戳:

In <11>: d1 
Out<11>: datetime.datetime(2014, 3, 24, 0, 0) 

In <12>: d2 
Out<12>: datetime.datetime(2014, 4, 6, 0, 0) 

我想索引的列基不要的d1:d2範圍。請注意,d1d2可能不是將在索引中。我如何在熊貓中做到這一點?

我想:

all_data.loc[d1:d2,:] 

,但我得到:start bound[2014-03-24 00:00:00] is not the [index]

回答

3

好吧,如果你賺了指數一個DateTimeIndex,部分字符串索引應該工作:

print df 
print df.index 

      x1 x2 
date    
2014-04-23 1 2 
2014-04-13 2 4 
2014-04-15 3 6 
2014-04-30 4 8 
2014-04-06 5 10 

[5 rows x 2 columns] 

<class 'pandas.tseries.index.DatetimeIndex'> 
[2014-04-23, ..., 2014-04-06] 

然後你可以使用部分字符串切片:

print df['2014-03-24':'2014-04-06'] 

      x1 x2 
2014-04-06 5 10 

print df.ix['2014-03-24':'2014-04-13',:] 

      x1 x2 
date    
2014-04-13 2 4 
2014-04-06 5 10 
+0

謝謝 - 如何將我的當前指數'DateTimeIndex'? –

+1

嘗試:'df.index = df.index.to_datetime()'(不to_pydatetime) –

+0

謝謝。我實際上有兩個索引(一個是'datetime',另一個是字符串)。 'to_datetime()'是一個'Index'方法嗎?如果是這樣,我怎樣才能將它應用於指標級別之一? –

相關問題