Pandas:使用DateTime对象查询时间序列的正确方法

时间:2014-04-14 15:23:05

标签: python datetime pandas type-conversion

让我们采用以下DataFrame:

df = pd.DataFrame({
 'Branch' : 'A A A A A B'.split(),
 'Date' : [
 pd.Timestamp('2009-04-05 01:30:00+0000', tz='UTC'),
 pd.Timestamp('2009-02-05 00:21:01+0000', tz='UTC'),
 pd.Timestamp('2010-05-05 07:52:20+0000', tz='UTC'),
 pd.Timestamp('2009-08-05 05:33:00+0000', tz='UTC'),
 pd.Timestamp('2011-02-05 02:09:33+0000', tz='UTC'),
 pd.Timestamp('2008-01-05 02:43:00+0000', tz='UTC'),
 ]})

 df.set_index('Date', inplace=True)

以及以下变种:

test_1 = dateutil.parser.parse('2010-05-05T07:52:20Z')

是否有可能获得与测试日期相匹配的DataFrame记录?并且有人知道为什么以下不起作用吗?

我已经尝试了

df.ix[test_1]

但这引发了异常。

此外,我尝试使用相同的类型:

test_2 = pd.Timestamp(test_1)
df.ix[test_2]

但这也引发了异常。

这两次都是:

KeyError: 1357045200000000000

我非常感谢任何帮助。

安迪

解决方案

我正在使用非官方版本的Pandas(特别是'0.13.1-223-g7cd9496'),可能问题仅限于此版本。使用官方的0.13.1版本后,我的代码完美无缺。

感谢所有

1 个答案:

答案 0 :(得分:2)

我可以通过这种方式得到它:

>test_1 = dateutil.parser.parse('2010-05-05T07:52:20Z')
>df['Branch'][test_1]
>'A'

测试:

>df.ix[test_1]
Branch    A
Name: 2010-05-05 07:52:20+00:00, dtype: object

也适合我...

使用:
python 2.7.5-5
python-pandas 0.12.0-2