日期时间范围索引:可能不在索引中的日期时间?

时间:2014-05-05 23:39:33

标签: python datetime pandas

我有一个由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)

我想将列{base} d1:d2范围编入索引。请注意,d1d2可能在索引中。我怎么能在熊猫中做到这一点?

我试过了:

all_data.loc[d1:d2,:]

但我明白了:start bound[2014-03-24 00:00:00] is not the [index]

1 个答案:

答案 0 :(得分: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