2016-01-08 3 views
1

я попытался код ниже:PyAlgo торговли не удалось прочитать файл CSV

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», "% . Ю.% м% 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') 

Traceback (most recent call last):

File "", line 1, in

File "/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py", line 171, in addValuesFromCSV return BaseFeed.addValuesFromCSV(self, path)

File "/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py", line 90, in addValuesFromCSV dateTime, rowValues = self.__rowParser.parseRow(row)

File "/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py", line 108, in parseRow dateTime = datetime.datetime.strptime(csvRowDict[self.__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 

последняя колонка торгуется объем EUR/

и, кстати, USD, как же pyalgotrade идти вместе с пандами? могу ли я использовать pandas для чтения csv-файла и передать его pyalgotrade?

+0

Не должен быть формат '(« Дата »,«% Y.% m.% D% H:% M:% S »), например. месячные и минутные форматы обмениваются вокруг – EdChum

+0

Также как вы определяете имена заголовков столбцов? ваш образец не включает строку заголовка – EdChum

+0

Не публикуйте как комментарий, отредактируйте ваш вопрос, чтобы мы не потеряли форматирование, также вы попробовали мою строку формата? – EdChum

ответ

1

У вас есть несколько ошибок, то KeyError потому, что вы пытались сослаться на столбец, который не существует, это Time и не Date, то вторая ваша строка формата, ваш месяц и минуты спецификатор следует поменять местами вокруг:

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

правильной формы, увидеть документы: http://strftime.org/

что касается низкой производительности и совместимости с пандами я понятия не имею, pyalgotrade должен поддерживать numpy массивы для того, чтобы работать с пандами ДФ.

 Смежные вопросы

  • Нет связанных вопросов^_^