2014-05-05 137 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'方法吗?如果是这样,我怎样才能将它应用于指标级别之一? –

相关问题