【发布时间】:2018-04-27 05:58:33
【问题描述】:
我目前有一个数据框,其中包含某个地方的地址详细信息。我想使用 Google 地理编码 API 密钥来查找坐标 - 纬度和经度以绘制地图。有人知道怎么做这个吗?我已经尝试了下面的代码,但它在所有地址行上都返回“错误,正在跳过地址...”。
我将非常感谢任何帮助!
import pandas as pd
import os
from geopy import geocoders
from geopy.geocoders import GoogleV3
API_KEY = os.getenv("API1234")
g = GoogleV3(api_key=API_KEY)
loc_coordinates = []
loc_address = []
for address in df.Address:
try:
inputAddress = Address
location = g.geocode(inputAddress, timeout=15)
loc_coordinates.append((location.latitude, location.longitude))
loc_Address.append(inputAddress)
except:
print('Error, skipping address...')
df_geocodes = pd.DataFrame({'coordinate':loc_coordinates,'address':loc_address})
【问题讨论】:
-
前面有两件事: 1. 这可能只是一个复制粘贴错误,但是当我想你的意思是
inputAddress = address时,你写了inputAddress = Address,以便不为其分配类型变量,但你的 for 循环的变量。 2. 不要在 except 子句中打印“错误,跳过地址...”,而是尝试捕获实际的异常,这可能会给您更多提示出了什么问题(我敢打赌,在 inputAddress 分配之后的行中是 TypeError )。你会做except Exception as e:,然后打印有关实际异常的信息。 -
另请参阅this question 以获取更多参考。
标签: python-2.7 pandas google-api jupyter-notebook geocode