1

我试图在下面编码:

from pyalgotrade.feed import csvfeed

feed=csvfeed.Feed("Date","%Y.%M.%d %H:%m:%S")

feed.addValuesFromCSV('/Users/emacsen/Duka_Data/EURUSD_UTC_1 Min_Bid_2005.01.01_2015.10.05.csv')

结果是一个错误:

dateTime = datetime.datetime.strptime(csvRowDict[self.__dateTimeColumn], self.__dateTimeFormat) KeyError: 'Date'

如果我使用格式样式 "Date","%Y.%m.%d %H:%M:%S" ,同样的错误:

feed=csvfeed.Feed("Date","%Y.%m.%d %H:%M:%S")

feed.addValuesFromCSV('/Users/emacsen/Duka_Data/EURUSD_UTC_1 Min_Bid_2005.01.01_2015.10.05.csv')

回溯(最近一次通话最后):

文件“”,第 1 行,在

文件“/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py”,第 171 行,在 addValuesFromCSV 返回 BaseFeed.addValuesFromCSV(self, path)

文件“/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py”,第 90 行,addValuesFromCSV dateTime,rowValues = self.__rowParser.parseRow(row )

文件“/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py”,第 108 行,在 parseRow .__dateTimeColumn], self.__dateTimeFormat) KeyError: 'Date'


如果我改用 pandas.read_csv() ,它可以很好地阅读,那么我的日期格式有什么问题?

csv文件被格式化

Time,Open,High,Low,Close,Volume 

2005.01.02 22:00:00,1.35464,1.3548,1.35464,1.3548,152.2
2005.01.02 22:01:00,1.35485,1.35489,1.35464,1.35479,409.1
2005.01.02 22:02:00,1.35492,1.35492,1.3547,1.3547,687.5
2005.01.02 22:03:00,1.35493,1.35501,1.35469,1.35486,604
2005.01.02 22:04:00,1.35485,1.35507,1.35478,1.3548,541.5

最后一栏是欧元/美元的交易量

顺便说一句,pyalgotrade 如何与熊猫一起使用?我可以使用 pandas 读取 csv 文件并将其传输到 pyalgotrade 吗?

4

1 回答 1

1

你有几个错误,这KeyError是因为你试图引用一个不存在的列,它是Time而不是Date,第二个是你的格式字符串,你的月份和分钟说明符应该交换:

feed=csvfeed.Feed("Time","%Y.%m.%d %H:%M:%S")

是正确的形式,请参阅文档:http ://strftime.org/

至于性能缓慢和与 pandas 的兼容性,我不知道,pyalgotrade 需要支持numpy数组才能与 pandas df 一起使用。

于 2016-01-08T14:00:40.737 回答