2016-03-06 4 views
3

у меня есть DataFrame со следующим результатом: enter image description hereКоординаты от UTM к широте и долготе в панд

, и я хочу, чтобы преобразовать те столбцы с координатами из WGS84 в Лон & Lat и, наконец, добавить эти новые столбцы в моих данных frame:

Для преобразования Я использую следующий код, но я думаю, что там должен быть лучший способ, не преобразовывая столбцы координат в список и создавая новый DataFrame.

import pyproj as pp 
from mpl_toolkits.basemap import Basemap 
import pandas as pd 

cx =dfb.COORDENADA_X.tolist() 
cy =dfb.COORDENADA_Y.tolist() 

utm15_wgs84 = pp.Proj(init='epsg:32615') 

for ix, iy in zip(cx, cy): 
    lon, lat = utm15_wgs84(ix, iy, inverse=True) 
    print(lon, lat) 

Любое предложение для этого?

ответ

2

Используйте функцию apply в pandasDataFrame. Например

dfb[['wgs_x', 'wgs_y']] = dfb.apply(lambda row:utm15_wgs84(row['COORDENADA_X'], row['COORDENADA_Y'], inverse=True), axis=1).apply(pd.Series) 
+0

Привет warmoverflow, спасибо вам ответить ... Я получаю следующее сообщение об ошибке 555 возврата INX, False, False, то Ложные 556 за исключением: -> 557 рейза TypeError ("вход должен быть массив, список, кортеж или скаляр ') 558 else: 559 # возможно, они являются регулярными массивами python? TypeError: ('вход должен быть массивом, списком, кортежем или скаляром', u'occurred при индексе 0 ') – hammu

+0

В коде, который я исправил, произошла ошибка. Пожалуйста, попробуйте еще раз. –

+0

Wow, warmoverflow, теперь он работает. Большое спасибо – hammu

 Смежные вопросы

  • Нет связанных вопросов^_^