.csv 形式で複数のデータ形式を持つファイルを読み込もうとしています。Python3.2 と Numpy 1.9 を使用しています。numpy genfromtxt 関数を使用してデータを読み込みます。オプションでコンバーター関数を使用しているため、後で処理するのではなく、読み取ったデータを変換して適切に保存できることを望んでいました。
複数のコンバーター関数を使用すると問題が発生するようです。コード、コードの入力および出力を以下に示します。ご覧のとおり、最初の行の出力は、入力ファイルの他の列とは異なる列からのものです。
以前にこの機能を使用した人はいますか? コードのどこかにバグがありますか?
コード:
converterfunc_time= lambda x : (datetime.strptime(x.decode('UTF-8'),'%m/%d/%Y %I:%M:%S %p'))
def converterfunc_lat(x):
print(x); print(x.decode('UTF-8'))
#return float(x.decode('utf-8').split('N')[1])
def converterfunc_san(x):
#print(x)
return (x.decode('UTF-8'))
class input_file_processing():
def __init__(self):
self.input_data=(np.genfromtxt('filename',skip_header=1,dtype=None,usecols=(0,1,6,7,8,9,10,13), names="Date,SAN,LatDeg,LatMin,LonDeg,LonMin,Beam,EsNo",
converters=0:converterfunc_time,1:converterfunc_san,6:converterfunc_lat}, delimiter=','))
**入力**
input, file, 1
4/2/2015 2:13:44 PM,DSN001000557867,03-01-01,0010155818,0,0,N33,00.546,W118,00.638,3,11,1,104,102,82,6,18,2048,4039587
4/2/2015 2:13:55 PM,DSN001000861511,03-01-02,0010416164,0,0,N33,00.883,W118,00.208,3,11,1,106,102,88,6,18,2048,2792940
4/2/2015 2:14:44 PM,DSN001000871692,03-01-04,0010408734,0,0,N33,00.876,W118,00.110,3,11,1,105,102,80,6,18,2048,312623
4/2/2015 2:14:52 PM,DSN001000864906,03-01-05,0010055143,0,0,N33,08.000,W118,03.000,3,11,1,107,99,83,6,18,2048,3056425
4/2/2015 2:15:00 PM,DSN001000838651,03-01-06,0010265541,0,0,N33,09.749,W118,00.317,3,11,1,100,110,74,6,14,2048,3737937
4/2/2015 2:15:08 PM,DSN001000609313,03-01-07,0010152885,0,0,N33,05.854,W118,04.107,3,11,1,94,95,62,6,14,2048,8221318
4/2/2015 2:15:19 PM,DSS31967278,03-01-08,0010350817,0,0,N33,04.551,W118,02.359,3,11,1,127,105,77,6,21,2048,21157710
4/2/2015 2:16:08 PM,DSN001000822728,03-01-10,0010051377,0,0,N33,00.899,W118,00.132,3,11,1,116,95,61,6,19,2048,3526254
出力
b'03-01-01'
03-01-01
b'N33'
N33
b'N33'
N33
b'N33'
N33
b'N33'
N33
b'N33'
ありがとう