2014-10-03 53 views
1

我有第二列中的數據文件在文件中存在格式'01/01/2007' 的日期。我試圖將此列轉換爲數字格式,以便我可以將文本文件中的數據插入到mysql數據庫中。當我嘗試這樣做時,我不斷收到這些錯誤:轉換日期列浮動

Traceback (most recent call last): 
    File "C:/Python27/numpy", line 5, in <module> 
    x = np.loadtxt(fname='xyz.txt', dtype=[('date', 'str', 12),('x','float')], converters={1:datestr2num}, delimiter=None, skiprows=0, usecols=None); 
    File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 713, in loadtxt 
    X.append(tuple([conv(val) for (conv, val) in zip(converters, vals)])) 
    File "C:/Python27/numpy", line 4, in datestr2num 
    return datetime.datetime.strptime(s,'"%m/%d/%y"') 
    File "C:\Python27\lib\_strptime.py", line 325, in _strptime 
    (data_string, format)) 
ValueError: time data '"01/01/2007"' does not match format '"%m/%d/%y"' 

任何人都可以幫助我嗎?這裏是我嘗試代碼:

import numpy as np 
import datetime 
def datestr2num(s): 
    return datetime.datetime.strptime(s,'"%m/%d/%y"') 
x = np.loadtxt(fname='xyz.txt', dtype= 'float', converters={1:datestr2num}, delimiter=None, skiprows=0, usecols=None); 
print x; 

回答

2

'%y'是兩位數字的年份(如'14');你有四位數年份(例如'2014'),所以應該使用'%Y' - 見the documentation

+0

謝謝。我對這件事情真的很陌生。它幫助,但現在我得到這個錯誤: 追溯(最近呼叫最後): 文件「C:/ Python27/numpy」,第5行,在 x = np.loadtxt(fname ='xyz.txt' ,dtype = [('date','str',12),('x','float')],converters = {1:datestr2num},delimiter = None,skiprows = 0,usecols = None); 文件「C:\ Python27 \ lib \ site-packages \ numpy \ lib \ npyio.py」,第731行,在loadtxt中 X = np.array(X,dtype = dtype) TypeError:預期可讀緩衝對象 – 2014-10-03 15:26:48

+2

@MiliReddy你應該看看http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html,如果沒有幫助,http://meta.stackoverflow.com/questions/260648 /堆棧溢出問題檢查表 – jonrsharpe 2014-10-03 15:50:59