2011-06-29 6 views
1

私は次のようなnumpy配列に読み込んでいるデータファイルを持っています。ファイルからnumpy配列にインポートするときに、2つのフィールドを1つに結合するにはどうすればよいですか?

#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) 

すべてが細かいですが、私の代わりに、別の私のアレイ内の1つの日時列に日付と時刻のフィールドを結合したいと思います列。コンバータ関数を使用して個々のフィールド変換を行うことはできますが、2つの別々の日付と時刻フィールドを1つのdatetimeに組み合わせる方法はわかりません。これはできますか?あなたはこのような非常に愚かなスクリプトを使用して、例えば、ロードする前に、CSVファイルをslice'n'dice場合

おかげで、ジョン

直接

答えて

2

ない、それは簡単に次のようになります。

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

このフィールド2とフィールド3をアンダースコアで結合し、タイムスタンプ文字列パーザーを使用することができます。

0

ドキュメントを見ると、np.genfromtxtの中からこれを行う方法はありません。おそらく、現在実行中のデータを読み込み、後の手順として2つの列を組み合わせた新しい配列を作成するのが最善の方法です。

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]) 
関連する問題