Cómo encontrar la longitud y la latitud de una lista de regiones o países usando Python

Geopy es un cliente de Python 2 y 3 para varios servicios web de geocodificación populares. La geocodificación es el proceso para identificar coordenadas geográficas como la latitud y la longitud de una ciudad/país/dirección determinada. Esto es muy útil al marcar la posición en el mapa en la visualización de datos. Usamos geopy.exec, geocodertimedout, geolocators, geopy.geocoderen el siguiente código para obtener los resultados

Instalación

Este módulo no viene integrado con Python. Para instalarlo, escriba el siguiente comando en la terminal.

pip install geopy 

Ejemplo: vamos a crear un marco de datos de pandas que contenga una lista de regiones o países.

# Import pandas package  
import pandas as pd 
import numpy as np
    
# Define a dictionary containing  data 
data = {'City':['Bangalore', 'Mumbai', 'Chennai', 'Delhi']} 
    
# Convert the dictionary into DataFrame 
df = pd.DataFrame(data) 
    
# Observe the result 
df 

Producción:

 find longitude and latitude for a list of regions/country

Ahora busquemos la latitud y la longitud de las siguientes regiones o países.

from geopy.exc import GeocoderTimedOut
from geopy.geocoders import Nominatim
   
# declare an empty list to store
# latitude and longitude of values 
# of city column
longitude = []
latitude = []
   
# function to find the coordinate
# of a given city 
def findGeocode(city):
       
    # try and catch is used to overcome
    # the exception thrown by geolocator
    # using geocodertimedout  
    try:
          
        # Specify the user_agent as your
        # app name it should not be none
        geolocator = Nominatim(user_agent="your_app_name")
          
        return geolocator.geocode(city)
      
    except GeocoderTimedOut:
          
        return findGeocode(city)    
  
# each value from city column
# will be fetched and sent to
# function find_geocode   
for i in (df["City"]):
      
    if findGeocode(i) != None:
           
        loc = findGeocode(i)
          
        # coordinates returned from 
        # function is stored into
        # two separate list
        latitude.append(loc.latitude)
        longitude.append(loc.longitude)
       
    # if coordinate for a city not
    # found, insert "NaN" indicating 
    # missing value 
    else:
        latitude.append(np.nan)
        longitude.append(np.nan)

Mostrando la salida producida como marco de datos.

# now add this column to dataframe
df["Longitude"] = longitude
df["Latitude"] = latitude
  
df

Producción:

 find longitude and latitude for a list of regions/country

Publicación traducida automáticamente

Artículo escrito por deepak_k y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *