Python 通过matplotlib和numpy剥离/识别日期
我试图让Python识别包含如下格式数据的txt文件Python 通过matplotlib和numpy剥离/识别日期,python,numpy,matplotlib,Python,Numpy,Matplotlib,我试图让Python识别包含如下格式数据的txt文件 20130501000000,1.55358,1.55371 20130501000000,1.55357,1.55369 20130501000000,1.55353,1.55367 20130501000000,1.55349,1.55367 20130501000000,1.55349,1.55367 目前我的脚本只包含 import time import datetime import ma
20130501000000,1.55358,1.55371
20130501000000,1.55357,1.55369
20130501000000,1.55353,1.55367
20130501000000,1.55349,1.55367
20130501000000,1.55349,1.55367
目前我的脚本只包含
import time
import datetime
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.dates as mdates
from datetime import datetime
import numpy as np
# Converter function
datefunc = lambda x: mdates.date2num(datetime.strptime(x, '%Y %m %d %H %M %S'))
# Read data from 'file.dat'
date, bid, ask = np.loadtxt('GBPUSD1d.txt', # Data to be read
delimiter=',', # First column is 19 characters wide
converters={0: datefunc}, # Formatting of column 0
dtype=float, # All values are floats
unpack=True) # Unpack to several variables
fig = plt.figure()
然而,我的输出是
Traceback (most recent call last):
File "/Users/michaelsylvia/Documents/help.py", line 18, in <module>
unpack=True) # Unpack to several variables
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/npyio.py", line 985, in loadtxt
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "/Users/michaelsylvia/Documents/help.py", line 11, in <lambda>
datefunc = lambda x: mdates.date2num(datetime.strptime(x, '%Y %m %d %H %M %S'))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 332, in _strptime
(data_string, format))
ValueError: time data '20130501000000' does not match format '%Y %m %d %H %M %S'
回溯(最近一次呼叫最后一次):
文件“/Users/michaelsylvia/Documents/help.py”,第18行,在
解包=真)#解包到多个变量
loadtxt中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/numpy/lib/npyio.py”,第985行
items=[zip格式(conv,val)的conv(val)]
文件“/Users/michaelsylvia/Documents/help.py”,第11行,在
datefunc=lambda x:mdates.date2num(datetime.strtime(x,'%Y%m%d%H%m%S'))
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py”,第332行,在_strptime中
(数据字符串,格式))
ValueError:时间数据“2013051000000”与格式“%Y%m%d%H%m%S”不匹配
这项工作:
datefunc = lambda x: mdates.date2num(datetime.strptime(x, '%Y%m%d%H%M%S'))
您的日期中没有空格。这样做:
datefunc = lambda x: mdates.date2num(datetime.strptime(x, '%Y%m%d%H%M%S'))
日期中没有空格。您应该使用pandas
read\u csv
,因为您的数据是逗号分隔的。如果它的.txt文件看起来像是您的时间戳“201305000000”的年份超出了python所能处理的范围,这无关紧要。熊猫与逗号分隔有什么关系loadtxt
也可以使用逗号分隔的文本。您应该使用pandasread\u csv
,因为您的数据是逗号分隔的。如果它的.txt文件看起来像是您的时间戳“201305000000”的年份超出了python所能处理的范围,这无关紧要。熊猫与逗号分隔有什么关系loadtxt
也适用于逗号分隔的文本。工作正常-棒极了!谢谢你,工作了-太棒了!非常感谢。