我有一个由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
范围编入索引。请注意,d1
或d2
可能不在索引中。我怎么能在熊猫中做到这一点?
我试过了:
all_data.loc[d1:d2,:]
但我明白了:start bound[2014-03-24 00:00:00] is not the [index]
答案 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