我的目标是将EURUSDdata(daily)读入一个时间序列对象,在该对象中,我可以根据不规则的ish时间帧轻松地对信息进行切片、切分、聚合和重采样。这很可能是一个简单的答案。我正在使用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
我知道我错过了一些简单的,基本的东西。有人能帮忙吗?
谢谢你, 布赖恩
第295页上的例子是在Series对象上执行的,这就是为什么索引年份有效的原因。对于数据帧,您希望
df.ix['2001']
获得相同的结果。如果要获取所有列,则
df.ix['2001']
。如果您只对“CLOSE”感兴趣,因为您已经做了
s = df['<CLOSE>']
,那么可以通过s['2001']
获得2001值相关问题 更多 >
编程相关推荐