2011-06-29 57 views
1

我有一個數據文件,我正在讀取一個numpy數組,看起來像下面這樣。當從文件導入numpy數組時,如何將兩個字段合併爲一個字段?

#RIC,Date[G],Time[G],GMT Offset,Type,Open,High,Low,Last,Volume 
ADH0,20100103,22:18:00.000,-6,Intraday 1Min,0.8915,0.8915,0.8915,0.8915,0 
ADH0,20100103,22:22:00.000,-6,Intraday 1Min,0.89,0.89,0.89,0.89,0 

我讀它使用np.genfromtxt()功能如下:

a = np.genfromtxt(f, names=True, delimiter=',', dtype="|S8,i4,|S12,f8", usecols=(0, 1, 2, 8), autostrip=True) 

一切都很好,但我想的日期和時間窗口在我的陣列組合成一個日期時間列,而不是獨立的列。我可以使用轉換器功能進行單獨的字段轉換,但我無法看到將兩個單獨的日期和時間字段組合成一個日期時間的方式。這可以做到嗎?

謝謝,喬恩

回答

2

不是直接的,如果你只是slice'n'dice裝貨前的csv文件,例如有這樣一個非常愚蠢的腳本可能更容易:

gawk -F, '{print $1","$2"_"$3","$4","$5","$6","$7","$8","$9","$10}' input.csv 

這將字段2和3合併爲一個下劃線,並且可以使用時間戳stringparser。

0

看看文檔,我不認爲有一種方法可以在np.genfromtxt內做到這一點。您最好的選擇可能是按照您當前的操作讀取數據,然後創建一個新的數組,將兩列合併爲一個後續步驟。

0

如果你不關心速度,這是一個相當直接的方式,雖然滿眼:

raw_csv = csv.reader(open('file')) 
joined_columns = np.array([[[i[0]]+[str(i[1])+'sep_string'+str(i[2])]+i[3:]]\ 
       for i in raw_csv]) 
相關問題