PyAlgo Trade无法读取csv文件

时间:2016-01-08 13:14:41

标签: python pandas pyalgotrade

我试着在下面编写代码:

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 [自.__ dateTimeColumn]   self .__ dateTimeFormat)KeyError:' 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行,

     

File" /Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py" ;,第171行,在addValuesFromCSV中     返回BaseFeed.addValuesFromCSV(自我,路径)

     

文件" /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中       dateTime = datetime.datetime.strptime(csvRowDict [self .__ dateTimeColumn],self .__ dateTimeFormat)   KeyError:'日期'

如果我使用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吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

相关问题