【问题标题】:Get latitude and Longitude for column in a python dataframe获取python数据框中列的纬度和经度
【发布时间】:2018-10-08 18:20:25
【问题描述】:

我有一列要获取经度和纬度。 我在网上做了研究,人们讨论了使用 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 是我的数据框中的列名,由大约 10 万个城市、州和国家/地区组成。 这段代码运行良好,但在我请求很多城市时给了我服务器超时。 谁能帮我获得所有 100k 城市的纬度和经度,而无需购买订阅,也不需要很长时间才能给出结果。 非常感谢您的帮助。

【问题讨论】:

    标签: python pandas gis latitude-longitude geopy


    【解决方案1】:

    我能够自己解决。我采取了两个步骤来追踪经纬度:

    1. this place 下载国家、城市及其经纬度列表。 下载后,我通过将国家和城市连接在一起制作了一个密钥,并在 python 中的 excel/merge 中进行了 vlookup 以查找相关的纬度和经度。我使用第二步的一些纬度和经度丢失了。

    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)
      

      其中纬度是包含城市和国家名称的数据框。

    结合这两种方法,我能够得到所有的纬度和经度。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-06
      • 2019-08-04
      • 2019-03-25
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多