列 6 と 7 が次の形式の GPS 位置である .txt データがあります。
50;18.5701400N,4;07.7693770E
read_csv で読み取ると、コンバーターを使用してデカルト座標に変換しようとします。コンバーターの関数を書きました
convertFunc = lambda x : float((x[0:5]+x[6:12]).replace(';','.'))
convert = {6:convertFunc,7:convertFunc}
単一の値で使用すると、希望どおりに機能します。
convertFunc(myData.Lat[1])
Out [159]: 55.187110250000003
read_csv で使用しようとすると機能しません
myData = DataFrame(read_csv('~/data.txt', sep=',' names=['A', 'B', 'C', 'D', 'E', 'Lat', 'Long'],converters=convert))
エラーがあります:
...
convertFunc = lambda x : float((x[0:5] + x[6:12]).replace(';', '.'))
ValueError: invalid literal for float(): DGPS ongitu
どこが間違っているのか、コンバーターで何が誤解されているのかわかりませんか? または、その形式で GPS データを操作するための良い方法 (パッケージ) を知っている人はいますか?
lambda
(関数を列に適用したいときにエラーが発生するという問題があると思いますTypeError: only length-1 arrays can be converted to Python scalars
:)