2016-03-06 2 views
3

J'ai une trame de données avec le résultat suivant: enter image description hereCoordonnées de UTM Latitude et Longitude en pandas géants

et je veux convertir les coordonnées colonnes de WGS84 à Lon & Lat et enfin ajouter ces nouvelles colonnes dans mes données frame:

Pour la conversion, j'utilise le code suivant, mais je pense qu'il devrait y avoir un meilleur moyen sans convertir les colonnes de coordonnées en liste et créer un nouveau 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) 

Une suggestion pour ce faire?

Répondre

2

Utilisez la fonction apply dans pandasDataFrame. Par exemple

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

Salut warmoverflow, merci pour vous répondre ... Je reçois le message d'erreur suivant 555 INX retour, Faux, faux, faux 556 sauf: -> 557 augmentation TypeError ('entrée doit être un tableau, une liste, un tuple ou un scalaire ') 558 else: 559 # peut-être sont-ils des tableaux python réguliers? TypeError: ('l'entrée doit être un tableau, une liste, un tuple ou un scalaire', est apparu à l'index 0 ') – hammu

+0

Il y avait une erreur dans le code que j'ai corrigé. Veuillez réessayer. –

+0

Wow, warmoverflow, ça marche maintenant. Merci beaucoup – hammu