2014-10-03 26 views
1

我是新來的Python(從Matlab轉換),我無法讀取CSV文件。基本上,我想創建一個數組與一個變量的日期/時間序列和相應的數據值(溼度測量)在另一個變量(我想跳過第二列)。文件格式如下:使用loadtext爲CSV文件的日期/時間

07-24-14 01:00:01 PM,%RH,36.988 
07-24-14 02:00:01 PM,%RH,40.832 
... 

我使用numpy的loadtxt功能如下(注:有在文件中21個headerlines):

def datestr2num(s): 
    return datetime.strptime(s,'%m-%d-%y %I:%M:%S %p') 

dates,vals = np.loadtxt('File.csv',usecols=(0,2),skiprows=21,converters={0:datestr2num},delimiter=',',unpack=True) 

我收到以下錯誤:

TypeError: float() argument must be a string or a number 

感謝您的幫助提前!

回答

1

另一種方法是使用浮動時間表示法。我經常使用matplotlib時間戳:

from matplotlib.dates import date2num 

def datestr2num(s): 
    return date2num(datetime.strptime(s, '%m-%d-%y %I:%M:%S %p')) 

或者你可以使用Python內置的「時間」:如果您要使用這些表示你的時間的一個反正

import time 

def datestr2num(s): 
    return time.mktime(datetime.strptime(s, '%m-%d-%y %I:%M:%S %p').timetuple()) 

,這可能運作良好。如果你想日期時間,使用達諾的解決方案。