获取python数据帧中列的纬度和经度

2024-04-30 02:16:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列,我想得到经度和纬度。 我在网上做了研究,人们讨论了使用地理和提名。 我也试过这个代码:

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万个城市、州和国家组成。 这段代码运行得很好,但给了我服务器超时,因为我需要很多城市。 有谁能帮我得到所有10万个城市的经纬度,而不需要购买订阅,也不用花很长时间就能给出结果。 非常感谢帮助。在


Tags: 代码returndefusernameplace地理geonameslat
1条回答
网友
1楼 · 发布于 2024-04-30 02:16:25

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

  1. this place下载国家、城市及其横向和纵向列表。 下载后,我把国家和城市连接在一起做了一个键,然后用excel/merge在python中做了一个vlookup,找到了相关的纬度和经度。一些纬度和经度丢失了,我用了第二步。

  2. 算账地理名称.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)
    

    其中纬度是由城市和国家的名称组成的数据帧。

结合这两种方法,我可以得到所有的经纬度。希望这有帮助。在

相关问题 更多 >