通过matplotlib和numpy剥离/识别日期

时间:2017-05-28 02:30:24

标签: 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 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'

1 个答案:

答案 0 :(得分:2)

这有效:

datefunc = lambda x: mdates.date2num(datetime.strptime(x, '%Y%m%d%H%M%S'))

您的约会中没有空格。