Получить широту и долготу для столбца в кадре данных Python - PullRequest
0 голосов
/ 08 октября 2018

У меня есть столбец, для которого я хочу получить долготу и широту.Я проводил исследования в сети, и люди обсуждали использование Geopy и Nominatim.Я также попробовал этот код:

def lat(x):
try:
    gn = geocoders.GeoNames(username='yadavk')
    lat=gn.geocode(x)[1]
    return(lat)
except TypeError:
    return(0)

latitude['lat']=latitude.place.apply(lat)

, где place - это имя столбца в моем фрейме данных, состоящее из около 100k городов, штатов и стран.Этот код работал нормально, но дает мне тайм-аут сервера, так как я запрашиваю много городов.Может ли кто-нибудь помочь мне получить широту и долготу всех 100 тыс. Городов без необходимости покупать подписку, а также не займет много времени, чтобы дать результаты.Помощь очень ценится.

1 Ответ

0 голосов
/ 09 октября 2018

Я смог понять это самостоятельно.Я сделал два шага, чтобы отследить широту и долготу:

  1. Скачать список стран, городов и их широту и длину от этого места .После загрузки я сделал ключ, соединив страну и города вместе, и сделал vlookup в excel / merge в python, чтобы найти соответствующие значения широты и долготы.Отсутствовали некоторые значения широты и долготы, для которых я использовал 2-й шаг.

  2. Создайте учетную запись на geonames.org и используйте этот код, чтобы найти широту и долготу:

    def lat(x):
    try:
       gn = geocoders.GeoNames(username='demo')
       lat=gn.geocode(x)[1]
     return(lat)
    except TypeError:
     return(0)
    
    latitude['lat']=latitude.place.apply(lat)
    

    где широта - это фрейм данных, состоящий из названий городов и стран.

Комбинируя эти два метода, я смог получить все значения широты и долготы.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...