使用pandas将csv文件中的数据读入时间序列

时间:2013-03-21 15:02:22

标签: python python-2.7 pandas time-series

我的目标是将EURUSD data(每日)读入一个时间序列对象,我可以根据不规则时间帧轻松地对信息进行切片,聚合和重新采样。这很可能是一个简单的答案。我正在使用Python进行数据分析,但似乎无法缩小差距。

下载并解压缩data后,运行以下代码:

>>> import pandas as pd
>>> df = pd.read_csv('EURUSD_day.csv', parse_dates = {'Timestamp' : ['<DATE>', '<TIME>']}, index_col = 'Timestamp')

到目前为止一切顺利。我现在有一个很好的数据框,时间戳作为索引。

然而,本书暗示(第295页)我应该能够对数据进行子集化,如下所示,以查看2001年的所有数据。

>>> df['2001']

但是,这不起作用。

阅读此question and answer告诉我,我可以导入时间戳:

>>> from pandas.lib import Timestamp
>>> s = df['<CLOSE>']

这似乎适用于某一天:

>>> s[Timestamp('2001-01-04)]
0.9506999999

然而,以下代码为2001年所有数据的所需范围产生了一个值。

>>> s[Timestamp('2001')]
0.8959

我知道我遗漏了一些简单的东西,一些基本的东西。有人可以帮忙吗?

谢谢你, 布赖恩

2 个答案:

答案 0 :(得分:4)

关于pg的例子。正在对Series对象执行295,这就是为什么使用年份进行索引的原因。使用DataFrame,您希望df.ix['2001']获得相同的结果。

答案 1 :(得分:0)

如果您想获取所有列,请df.ix['2001']

如果您只对“关闭”感兴趣,因为您已经s = df['<CLOSE>'],您可以按s['2001']

获取2001年的值