使用python的pgeocode库查找经纬度
为什么我在运行下面的代码时得到了NaN的答案。它适用于某些pin码,而不适用于其他pin码使用python的pgeocode库查找经纬度,python,python-3.x,pandas,numpy,latitude-longitude,Python,Python 3.x,Pandas,Numpy,Latitude Longitude,为什么我在运行下面的代码时得到了NaN的答案。它适用于某些pin码,而不适用于其他pin码 import pgeocode nomi = pgeocode.Nominatim('in') print(nomi.query_postal_code("302023")) 我得到的答案是: postal_code 302023 country code NaN place_name NaN state_name NaN sta
import pgeocode
nomi = pgeocode.Nominatim('in')
print(nomi.query_postal_code("302023"))
我得到的答案是:
postal_code 302023 country code NaN place_name NaN state_name NaN state_code NaN county_name NaN county_code NaN community_name NaN community_code NaN latitude NaN longitude NaN accuracy NaN Name: 0, dtype: object
我不熟悉
pgeocode
,但我通常使用geopandas
获取坐标:
import geopandas
df = geopandas.tools.geocode(302023)
# get lat and lon
df['lon'] = df['geometry'].x
df['lat'] = df['geometry'].y
print(df)
geometry address lon lat
0 POINT (75.77929 26.95578) 302023, India, India 75.779289 26.95578
以下是要使pgeocode正常工作,必须下载包含特定国家/地区邮政编码的文本文件 前往并下载您要查找的国家的邮政编码查找文件(例如,IN.zip代表印度,GB.zip代表英国) 解压缩下载的文件并将新文件夹放在代码文件所在的同一文件夹中
在此之后,您的代码应该可以正常工作。我无法下载geopandas库。以下是错误:错误:必须指定GDAL API版本。使用gdal\U配置环境变量或使用gdal\U版本环境变量提供gdal配置的路径。--------------------------------------错误:命令“python setup.py egg_info”失败,错误代码为1,出现在C:\Users\INDIA\AppData\Local\Temp\pip-install-5oeux3wh\fiona\check out中,但如果使用anaconda,您可以使用
conda安装geopandas
如果使用pip,请确保安装了所有依赖项。我下载了所有依赖项。。现在,错误是:GeocoderTimedOut:服务超时,这有时会发生,因为其默认的地理编码api是免费的。您可以阅读免费api上的使用文档:“免费用户每天限制250次,每秒限制4次请求(基于IP)”,如果您要对pin码列表进行地理编码,则需要使用while循环和except
语句。或者你可以使用谷歌的地理编码api。这些都在我在回答中列出的文档中。请阅读文件。