文本文件mdates.strpdate2num错误

时间:2014-03-22 19:48:52

标签: python numpy converter

我使用numpy loadtxt转换器时出现错误。

非常感谢您的帮助

import numpy as np
import time
import datetime
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.dates as mdates
from matplotlib.finance import candlestick
from matplotlib.dates import strpdate2num
import urllib2


## global variables
eachStock = 'AAPL','GOOG','MSFT','AMZN','CMG'



for stock in eachStock:

    stockFile = stock+'.txt'
    date, closep, highp, lowp, openp, volume = np.loadtxt(eachStock, delimiter=',', unpack=True,
                                                          converters={ 0: mdates.strpdate2num('%Y%m%d')})

    dFrame = Series(closep)

这是我的文本文件中的第一行

20040322,13.5200,13.6800,12.6100,12.6850,15850720

这是我一直得到的错误

    Traceback (most recent call last):
  File "C:\Users\antoniozeus\Desktop\BuyAndHold.py", line 27, in <module>
    converters={ 0: mdates.strpdate2num('%Y%m%d')})
  File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 796, in loadtxt
    items = [conv(val) for (conv, val) in zip(converters, vals)]
  File "C:\Python27\lib\site-packages\matplotlib\dates.py", line 233, in __call__
    return date2num(datetime.datetime(*time.strptime(s, self.fmt)[:6]))
  File "C:\Python27\lib\_strptime.py", line 454, in _strptime_time
    return _strptime(data_string, format)[0]
  File "C:\Python27\lib\_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data 'AAPL' does not match format '%Y%m%d'

1 个答案:

答案 0 :(得分:2)

您似乎错误地将stockFile(文件名)键入为eachStock

date, closep, highp, lowp, openp, volume = np.loadtxt(
    stockFile, delimiter=',', unpack=True,
    converters={ 0: mdates.strpdate2num('%Y%m%d')})