当我没有手动收到 运行 代码时,在 Python for 循环中收到 KeyError
Receiving a KeyError in a Python for loop when I do not receive one running the code manually
我正在尝试使用 geopy 库获取旧金山 10 个街区的纬度和经度值。出于某种原因,代码将 运行 单独索引每个社区,但是 returns 当我尝试在整个列中循环它时出现 KeyError。
例如,以下代码 returns 第一个街区的坐标,即加利福尼亚州旧金山金银岛:
geolocator = Nominatim(user_agent = 'sf_explorer')
location = geolocator.geocode(cheap_df['Address'][0])
latitude = location.latitude
longitude = location.longitude
print('The geographical coordinates of Treasure Island, San Francisco are {}, {}.'.format(latitude, longitude))
我想循环遍历整个列并将纬度和经度值附加到两个单独的列表中。以下是我如何将代码调整为 运行 作为 for 循环:
lat = []
lon = []
for i in cheap_df['Address']:
geolocator = Nominatim(user_agent = 'sf_explorer')
location = geolocator.geocode(cheap_df['Address'][i])
latitude = location.latitude
longitude = location.longitude
lat.append(latitude)
lon.append(longitude)
但是,在 运行 之后,我得到以下 KeyError,箭头指向第 7 行(以 location 开头的行):
KeyError: 'Treasure Island, San Francisco, California'
有谁知道我做错了什么,我该如何解决?非常感谢任何帮助!
i
是 cheap_df['Address']
的元素,不是索引。您不应该尝试将其用作索引,只需按原样使用即可。
location = geolocator.geocode(i)
我正在尝试使用 geopy 库获取旧金山 10 个街区的纬度和经度值。出于某种原因,代码将 运行 单独索引每个社区,但是 returns 当我尝试在整个列中循环它时出现 KeyError。
例如,以下代码 returns 第一个街区的坐标,即加利福尼亚州旧金山金银岛:
geolocator = Nominatim(user_agent = 'sf_explorer')
location = geolocator.geocode(cheap_df['Address'][0])
latitude = location.latitude
longitude = location.longitude
print('The geographical coordinates of Treasure Island, San Francisco are {}, {}.'.format(latitude, longitude))
我想循环遍历整个列并将纬度和经度值附加到两个单独的列表中。以下是我如何将代码调整为 运行 作为 for 循环:
lat = []
lon = []
for i in cheap_df['Address']:
geolocator = Nominatim(user_agent = 'sf_explorer')
location = geolocator.geocode(cheap_df['Address'][i])
latitude = location.latitude
longitude = location.longitude
lat.append(latitude)
lon.append(longitude)
但是,在 运行 之后,我得到以下 KeyError,箭头指向第 7 行(以 location 开头的行):
KeyError: 'Treasure Island, San Francisco, California'
有谁知道我做错了什么,我该如何解决?非常感谢任何帮助!
i
是 cheap_df['Address']
的元素,不是索引。您不应该尝试将其用作索引,只需按原样使用即可。
location = geolocator.geocode(i)