我试图从文件中读取日期时间字符串,后跟一些数据。它提供错误。我把它减少到跟随任务产生错误
import numpy as np
from matplotlib.dates import strpdate2num
from io import StringIO
d = StringIO(u'16-03-13 20:13:55')
date = np.loadtxt(d, converters={0:strpdate2num('%y-%m-%d %H:%M:%S')})
date
提供以下错误:
ValueError: time data '16-03-13' does not match format '%y-%m-%d %H:%M:%S'
单独部分的执行效果很好
d = StringIO(u'16-03-13')
date = np.loadtxt(d, converters={0:strpdate2num('%y-%m-%d')})
date
给了我
array(736036.0)
随着时间的推移单独作品也很好
d = StringIO(u"20:13:55")
date= np.loadtxt(d, delimiter=' ', unpack=True, converters={0: strpdate2num('%H:%M:%S')})
date
给出
array(693596.8429976852)
我做错了什么?
答案 0 :(得分:1)
问题是因为np.loadtxt
正在尝试将您的字符串拆分为两个组件,因为它的默认分隔符是一个空格,并且您的字符串中有一个空格。
如果您将分隔符更改为其他任何内容,则可以使用,例如:
date = np.loadtxt(d, converters={0:strpdate2num('%y-%m-%d %H:%M:%S')}, delimiter=',')
print date
# 736036.842998
当然,如果您的字符串后面有数据,并且分隔符是日期时间字符串和数据之间的空格,您可能需要将日期和时间读作两个单独的字符串,然后将它们连接在一起。