使用python的pgeocode库查找经纬度

使用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

为什么我在运行下面的代码时得到了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  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。这些都在我在回答中列出的文档中。请阅读文件。